2.6.5 DBアクセス時の認証
アプリケーションが取得するコネクション(QueueSessionオブジェクト)には,JDBCコネクションが関連づけられます。
アプリケーションがコネクションを要求すると,Reliable MessagingはApplication Serverのコネクションプーリング機能と連携し,プーリングされているJDBCコネクションを再利用します。JDBCコネクションがプールにないときは,DBMSから新しいJDBCコネクションを取得します。このときDBMSの接続ユーザの認証にはアプリケーションで指定した認証方法(コンテナ認証またはアプリケーション認証)が使用されます。認証情報の設定については,「3.4.5 Reliable Messagingのプロパティ定義(永続版リソースアダプタの場合)」を参照してください。
また,アプリケーションがコネクションを解放するときは,Application Serverのコネクションプーリング機能を経由して処理されます。コネクションプーリング数(Application Serverでの定義値)に空きがあるとJDBCコネクションは解放されないでプールされます。
アプリケーションからのコネクション取得の概要を次の図に示します。
図中の番号について,説明します。
-
コネクションの要求
アプリケーションがQueueConnection.createQueueSession()メソッドを発行し,コネクションを要求します。
-
コネクションの要求通知
Reliable MessagingがApplication Serverにコネクションの要求通知をします。
-
Application Server内にプーリング中のコネクションがある場合はプール中のJDBCコネクションが再利用されます。
-
JDBCコネクションの要求
プーリング中のコネクションがない場合,Reliable MessagingはDBMSに要求してJDBCコネクションを取得します。コンテナ認証の場合は,リソースアダプタのプロパティで指定した認証情報が利用されます。また,アプリケーション認証の場合は,アプリケーションで指定した認証情報が利用されます。
-
QueueSessionオブジェクトとの関連づけ
Reliable Messagingはアプリケーションに返却するQueueSessionオブジェクトを生成し,3.または4.で取得したJDBCコネクションと関連づけます。
-
QueueSessionオブジェクトの返却
Reliable MessagingはアプリケーションにQueueSessionオブジェクトを返します。