FacadeCaller実装サービス jp.ossc.nimbus.service.sequence.DefaultFacadeCallService

jp.ossc.nimbus.service.ioccall.DefaultFacadeCallServiceは、FacadeCallerデフォルト実装サービスです。

このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。

下位サービスインタフェース用途
jp.ossc.nimbus.service.ejb.EjbFactoryIOCのEJBを取得する。
jp.ossc.nimbus.service.queue.QueueHandlerContainerNimbusのQueueを使って非同期実行を行う。
jp.ossc.nimbus.service.jndi.JndiFinderJMS Queueをlookupする。
jp.ossc.nimbus.service.resource.ResourceFactoryJMS Sessionを取得する。
jp.ossc.nimbus.service.context.ThreadContextServiceFacadeValueのヘッダを使って呼び出し先にコンテキスト情報を伝搬する。

以下に簡単なサービス定義を示します。

  1. <?xml version="1.0" encoding="Shift_JIS"?>
  2. <!DOCTYPE server PUBLIC
  3. "-//Nimbus//DTD Nimbus 1.0//JA"
  4. "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd">
  5. <server>
  6. <manager>
  7. <!-- IOC呼び出しサービス -->
  8. <service name="IOCFacadeCaller"
  9. code="jp.ossc.nimbus.service.ioccall.DefaultFacadeCallService">
  10. <!-- Facade EJBを取得するEjbFactoryサービスのサービス名を設定する -->
  11. <attribute name="EjbFactoryServieName">#FacadeEjbFactory</attribute>
  12. <!-- Facade EJBをのJNDI名を設定する -->
  13. <attribute name="FacadeEjbName">SLSBFacadeRemote</attribute>
  14. <!-- UnitOfWork EJBを取得するEjbFactoryサービスのサービス名を設定する -->
  15. <attribute name="UnitOfWorkEjbFactoryServieName">#UnitOfWorkEjbFactory</attribute>
  16. <!-- UnitOfWork EJBをのJNDI名を設定する -->
  17. <attribute name="UnitOfWorkEjbName">SLSBUnitOfWorkRemote</attribute>
  18. <!-- Command EJBを取得するEjbFactoryサービスのサービス名を設定する -->
  19. <attribute name="CommandEjbFactoryServieName">#CommandEjbFactory</attribute>
  20. <!-- Command EJBをのJNDI名を設定する -->
  21. <attribute name="CommandEjbName">SLSBCommandRemote</attribute>
  22. <!-- JMS QueueをlookupするJndiFinderサービスのサービス名を設定する -->
  23. <attribute name="QueueFinderServiceName">#LocalJndiFinder</attribute>
  24. <!-- JMS QueueをとのSessionを取得するResourceFactoryサービスのサービス名を設定する -->
  25. <attribute name="QueueSessionFactoryServiceName">#QueueSessionFactory</attribute>
  26. <!-- JMS QueueのJNDI名を設定する -->
  27. <attribute name="QueueName">queue/IOCQueue</attribute>
  28. <depends>FacadeEjbFactory</depends>
  29. <depends>UnitOfWorkEjbFactory</depends>
  30. <depends>CommandEjbFactory</depends>
  31. <depends>LocalJndiFinder</depends>
  32. <depends>QueueSessionFactory</depends>
  33. </service>
  34. <!-- Facade EJB EjbFactoryサービス -->
  35. <service name="FacadeEjbFactory"
  36. code="jp.ossc.nimbus.service.ejb.UnitEJBFactoryService">
  37. <attribute name="HomeType">jp.ossc.nimbus.ioc.ejb.facade.SLSBFacadeHome</attribute>
  38. <attribute name="RemoteType">jp.ossc.nimbus.ioc.ejb.facade.SLSBFacadeRemote</attribute>
  39. <attribute name="JndiFinderServiceName">#LocalJndiFinder</attribute>
  40. <depends>LocalJndiFinder</depends>
  41. </service>
  42. <!-- UnitOfWork EJB EjbFactoryサービス -->
  43. <service name="UnitOfWorkEjbFactory"
  44. code="jp.ossc.nimbus.service.ejb.UnitEJBFactoryService">
  45. <attribute name="HomeType">jp.ossc.nimbus.ioc.ejb.unitofwork.SLSBUnitOfWorkHome</attribute>
  46. <attribute name="RemoteType">jp.ossc.nimbus.ioc.ejb.unitofwork.SLSBUnitOfWorkRemote</attribute>
  47. <attribute name="JndiFinderServiceName">#LocalJndiFinder</attribute>
  48. <depends>LocalJndiFinder</depends>
  49. </service>
  50. <!-- Command EJB EjbFactoryサービス -->
  51. <service name="CommandEjbFactory"
  52. code="jp.ossc.nimbus.service.ejb.UnitEJBFactoryService">
  53. <attribute name="HomeType">jp.ossc.nimbus.ioc.ejb.command.SLSBCommandHome</attribute>
  54. <attribute name="RemoteType">jp.ossc.nimbus.ioc.ejb.command.SLSBCommandRemote</attribute>
  55. <attribute name="JndiFinderServiceName">#LocalJndiFinder</attribute>
  56. <depends>LocalJndiFinder</depends>
  57. </service>
  58. <!-- JMSのSessionをリソースとして生成するResourceFactoryサービス -->
  59. <service name="QueueSessionFactory"
  60. code="jp.ossc.nimbus.service.resource.jms.JMSSessionFactoryService">
  61. <attribute name="JMSSessionFactoryServiceName">#JMSSessionFactory</attribute>
  62. <depends>JMSSessionFactory</depends>
  63. </service>
  64. <!-- javax.jms.Sessionを取得するJMSSessionFactoryサービス -->
  65. <service name="JMSSessionFactory"
  66. code="jp.ossc.nimbus.service.jms.JMSQueueSessionFactoryService">
  67. <attribute name="JMSConnectionFactoryServiceName">#JMSConnectionFactory</attribute>
  68. <depends>JMSConnectionFactory</depends>
  69. </service>
  70. <!-- javax.jms.Connectionを取得するConnectionFactoryサービス -->
  71. <service name="JMSConnectionFactory"
  72. code="jp.ossc.nimbus.service.jms.JMSQueueConnectionFactoryService">
  73. <attribute name="JndiFinderServiceName">#LocalJndiFinder</attribute>
  74. <attribute name="ConnectionFactoryName">XAConnectionFactory</attribute>
  75. <depends>LocalJndiFinder</depends>
  76. </service>
  77. <!--ローカルJNDI検索サービス-->
  78. <service name="LocalJndiFinder"
  79. code="jp.ossc.nimbus.service.jndi.CachedJndiFinderService"/>
  80. </manager>
  81. </server>


IOC/FacadeCaller