The ADO.NET provider for Salesforce implements connection pooling to reduce the efforts of repeatedly opening and closing connections. A connection pool is a cache of database connections maintained where user can reuse existing active connections with the same connection string instead of creating new connections when a request is made to the database.
Connection?pools are used to enhance the performance of executing commands on a database. The provider by default supports pooling as the UsePool property is set to True. However, pooling can be disabled by setting UsePool property to False.
The following example demonstrates the implementation of connection pooling in ADO.NET provider for Salesforce.
C# |
コードのコピー
|
---|---|
//接続文字列を定義します。 string GCSalesforceServerConnectionString = @"Username=**********;Password=***********;Security Token=************; OAuth Client Id=***********;OAuth Client Secret=***************; OAuth Token Endpoint=https://ap16.salesforce.com/services/oauth2/token; Url=https://ap16.salesforce.com/services/data/v45.0"; //接続プーリングを使用する場合: プーリングから既存の接続オブジェクトを再利用することで時間を節約します。 for (int i = 0; i < 1000; i++) { C1SalesforceConnection c = new C1SalesforceConnection($@"{GCSalesforceServerConnectionString};Use Pool=true;"); c.Open();//ソフトな接続が構築されます。 // 操作を実行します。 c.Close();// 接続を切ります (接続オブジェクトを接続プールに返します)。 } |
The following example demonstrates how to disable connection pooling by setting the "Use Pool" property to false in the connection string.
C# |
コードのコピー
|
---|---|
//接続文字列を定義します。 string GCSalesforceServerConnectionString = @"Username=**********;Password=***********;Security Token=************; OAuth Client Id=***********;OAuth Client Secret=***************; OAuth Token Endpoint=https://ap16.salesforce.com/services/oauth2/token; Url=https://ap16.salesforce.com/services/data/v45.0"; //接続プーリングを使用せずに個別の接続を確立します。 for (int i = 0; i < 1000; i++) { C1SalesforceConnection c = new C1SalesforceConnection($@"{GCSalesforceServerConnectionString};Use Pool=false;"); c.Open();//毎回新しい接続が作成されます。 // 操作を実行します。 c.Close();//接続を切ります (接続オブジェクトはガベージ コレクションに移動されます) } |