Show page source of Function/service/resource #95152

= ![応用機能]リソース
アプリケーション開発において、様々なリソースを使用します。[[BR]]
ここで言うリソースは、使ったら終了処理をする必要があるもの、またトランザクション制御(コミット、ロールバック)が必要なものです。[[BR]]

リソースは、様々なインタフェースを持つので、終了処理やトランザクション制御を同じインタフェースで制御するために、リソースをラップして提供するインタフェースが、[wiki:#header_ResourceFactory ResourceFactory]です。

関連するパッケージは、以下です。
 * [http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/resource/package-summary.html jp.ossc.nimbus.service.resource]
 * [http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/resource/datasource/package-summary.html jp.ossc.nimbus.service.resource.datasource]
 * [http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/resource/http/package-summary.html jp.ossc.nimbus.service.resource.http]
 * [http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/resource/jms/package-summary.html jp.ossc.nimbus.service.resource.jms]

== アプリケーション向けインタフェース ResourceFactory #header_ResourceFactory
アプリケーション向けインタフェース[http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/resource/ResourceFactory.html ResourceFactory]は、リソースをラップした[http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/resource/TransactionResource.html TransactionResource]を提供するインタフェースです。[[BR]]

ResourceFactoryを使った簡単なアプリケーションのサンプルを示します。
{{{ code java
import java.sql.Connection;

import jp.ossc.nimbus.core.ServiceManagerFactory;
import jp.ossc.nimbus.service.resource.ResourceFactory;
import jp.ossc.nimbus.service.resource.TransactionResource;

// ReourceFactoryを取得
ReourceFactory factory = (ReourceFactory)ServiceManagerFactory.getServiceObject("ReourceFactory");

// リソースを生成する
TransactionResource resource = factory.makeReource(null);

try{
    // ラップされているリソースを取り出す
    Connection con = (Connection)resource.getObject();
    
    // コミットする
    resource.commit();
    
}catch(Exception e){
    
    // ロールバックする
    resource.rollback();
    
    throw e;
    
}finally{
    
    // リソースを終了する
    resource.close();
    
}

}}}

実装サービスの一覧は以下のとおりです。
||実装サービス||実装概要||
||[wiki:Function/service/resource/datasource/JdbcConnectionFactoryService jp.ossc.nimbus.service.resource.datasource.JdbcConnectionFactoryService]||JDBCのConnectionをリソースとして取得する||
||[wiki:Function/service/resource/http/HttpClientFactoryService jp.ossc.nimbus.service.resource.http.HttpClientFactoryService]||[wiki:Function/service/http#header_HttpClientFactory HttpClient]をリソースとして取得する||
||[wiki:Function/service/resource/jms/JMSSessionFactoryService jp.ossc.nimbus.service.resource.jms.JMSSessionFactoryService]||JMSのSessionをリソースとして取得する||
||[wiki:Function/service/resource/PooledResourceFactoryService jp.ossc.nimbus.service.resource.PooledResourceFactoryService]||Jakarta Commons Poolを使って、リソースをプールする||