2
OracleとColdFusion 9を使用しています。プールからすべてのColdFusion接続をリセットする方法はありますか?
Oracleパッケージが無効になると、次回接続が特定のパッケージにアクセスするときに無効なパッケージ警告でColdFusion接続がすべて失敗します。
プール内のすべてのColdFusion接続を無効にするプログラム的な方法はありますか?
OracleとColdFusion 9を使用しています。プールからすべてのColdFusion接続をリセットする方法はありますか?
Oracleパッケージが無効になると、次回接続が特定のパッケージにアクセスするときに無効なパッケージ警告でColdFusion接続がすべて失敗します。
プール内のすべてのColdFusion接続を無効にするプログラム的な方法はありますか?
開発サーバーでは、admin apiを使用してデータソースの設定を変更することが迅速かつ簡単です。私は、接続プーリングを無効/有効にして(またはdsnを変更するだけで)すべての接続を自動的に閉じます。
ここには、MS SQLの例があります。 Oracleの設定は若干異なる場合があります。
<cfscript>
// get datasource api
adminAPI = createObject("component", "cfide.adminapi.administrator");
adminAPI.login("cf_admin_password");
dsnService = createObject("component","cfide.adminapi.datasource");
// disable pooling
// NOTE: change setMSSQL() to setOracle()
props = {name="MyDatasourceName", pooling=false, host="127.0.0.1", database="MyDBName"};
dsnService.setMSSQL(argumentCollection=props);
sleep(2000);
// re-enable pooling
props.pooling = true;
dsnService.setMSSQL(argumentCollection=props);
// sanity check
finalSettings = dsnService.getDatasources()[props.name];
if (finalSettings.pooling) {
WriteDump("SUCCESS");
} else {
WriteDump("ERROR: Pooling was not re-enabled");
}
</cfscript>