[応用機能]リソース

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

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

関連するパッケージは、以下です。

アプリケーション向けインタフェース ResourceFactory

アプリケーション向けインタフェースResourceFactoryは、リソースをラップしたTransactionResourceを提供するインタフェースです。

ResourceFactoryを使った簡単なアプリケーションのサンプルを示します。

  1. import java.sql.Connection;
  2. import jp.ossc.nimbus.core.ServiceManagerFactory;
  3. import jp.ossc.nimbus.service.resource.ResourceFactory;
  4. import jp.ossc.nimbus.service.resource.TransactionResource;
  5. // ReourceFactoryを取得
  6. ReourceFactory factory = (ReourceFactory)ServiceManagerFactory.getServiceObject("ReourceFactory");
  7. // リソースを生成する
  8. TransactionResource resource = factory.makeReource(null);
  9. try{
  10. // ラップされているリソースを取り出す
  11. Connection con = (Connection)resource.getObject();
  12. // コミットする
  13. resource.commit();
  14. }catch(Exception e){
  15. // ロールバックする
  16. resource.rollback();
  17. throw e;
  18. }finally{
  19. // リソースを終了する
  20. resource.close();
  21. }

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.resource.datasource.JdbcConnectionFactoryServiceJDBCのConnectionをリソースとして取得する
jp.ossc.nimbus.service.resource.http.HttpClientFactoryServiceHttpClientをリソースとして取得する
jp.ossc.nimbus.service.resource.jms.JMSSessionFactoryServiceJMSのSessionをリソースとして取得する
jp.ossc.nimbus.service.resource.jmsqueue.JmsQueueSessionServiceJMSのQueueSessionをリソースとして取得する
jp.ossc.nimbus.service.resource.jmstopic.JmsTopicSessionServiceJMSのTopicSessionをリソースとして取得する
jp.ossc.nimbus.service.resource.PooledResourceFactoryServiceJakarta Commons Poolを使って、リソースをプールする