質問

いて事例の使い方 DBMS_APPLICATION_INFO パッケージJBOSS?

して様々なケース内を行き来してJBOSSを共有dbプールがあります。れていきたいと考えていをスタートし、これらのセッションへの応用を認識させる、データベースを使用DBMS_APPLICATION_INFOりできますのでより簡単にパソコン-スマートフォン部門の応募がデータベース課題です。

私は詳しくは知らないけれどセッションのライフサイクルにJBOSS、その日に何が起こるの終了までの取引では、このパッケージのニーズを呼び出しを行います。

で行うこと。

役に立ちましたか?

解決

あり、ラッパークラスごとの接続プール、wraperの接続 では言い:

OracleConnection conn=connectionPool.getConnection("java:scott@mydb");

に変更するには:

public class LoggingConnectionPool extends ConnectionPool{
    public OracleConnection getConnection(String datasourceName, String module, String action){
        OracleConnection conn=getConnection(datasourceName);
        CallableStatement call=conn.preparedCall("begin dbms_application_info.setModule(module_name => ?, action_name => ?); end;");
        try{
            call.setString(1,module);
            call.setString(2,action);
            call.execute();
        finally{
            call.close();
        }
        return new WrappedOracleConnection(conn);
    }

注の利用WrappedOracleConnectionます。必要なことする必要があるためトラップ内通話

public class WrappedOracleConnection extends OracleConnection{
    public void close(){
        CallableStatement call=this.preparedCall("begin dbms_application_info.setModule(module_name => ?, action_name => ?); end;");
        try{
            call.setNull(1,Types.VARCHAR);
            call.setNull(2,Types.VARCHAR);
            call.execute();
        finally{
            call.close();
        }
    }

    // and you need to implement every other method
    //for example
    public CallableStatement prepareCall(String command){
        return super.prepareCall(command);
    }
    ...
}

武器agiは、dexで下がらないboxerぐいう開発サーバーチの接続が閉じられるわけではありません(返されませんのプール).

他のヒント

ご利用の場合JBossをお使いいただけますので"有効な接続-チェッカー".このクラスが正常使用の妥当性をチェック。が、そのままメソッドが呼び出され、毎時間、接続プール、ユーザに接続で無い場合、お名前をお書き添えの設定をDBMS_用_INFO.

きを宣言するようなクラスoracle-ds.xml このように:

<local-tx-datasource>
    <jndi-name>jdbc/myDS</jndi-name>
    <connection-url>jdbc:oracle:thin:@10.10.1.15:1521:SID</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <security-domain>MyEncryptDBPassword</security-domain>
    <valid-connection-checker-class-name>test.MyValidConn</valid-connection-checker-class-name>
    <metadata>
        <type-mapping>Oracle9i</type-mapping>
    </metadata>
</local-tx-datasource>

ごクラスが実装しなければならないのorg.jboss.リソースです。アダプター。jdbc.ValidConnectionCheckerインターフェース。ご利用の場合はMavenできるこのインタフェースは以下の依存関係:

<dependency>
    <groupId>jboss</groupId>
    <artifactId>jboss-common-jdbc-wrapper</artifactId>
    <version>3.2.3</version>
    <scope>provided</scope>
</dependency>

このインタフェースについては方法:isValidConnection.コピー私の実施

public SQLException isValidConnection(Connection arg0) {
    CallableStatement statement;
    try {
        statement = arg0.prepareCall("call dbms_application_info.set_client_info('"+getInfos()+"')");
        statement.execute();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

希望です!

Benoît

-ds.xml, お申し込みとさせていただき接続する v$セッション。プログラム の価値をプロパティの読み込みの プログラム カラムの各セッションの V$セッション ビューの作成のための接続から接続プールがあります。また、普段はセットで jboss.サーバーです。名称 物件です。

こちらの のための一例です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top