Jakarta EE の展開
はじめに
ここでは、Java アプリケーションサーバーでの TIBCO EBX® の展開仕様について詳しく説明します。サポートされるアプリケーションサーバーと固有の制限事項に関する具体的な情報については、サポートされる環境を参照してください。
安全な展開をナビゲートする方法については、セキュリティのベストプラクティスを参照してください。
ソフトウェアコンポーネント
EBX® は次のコンポーネントを使用します。
-
ライブラリ
ebx.jar -
デフォルトのユーザーとロールのディレクトリ。EBX® リポジトリ内またはユーザー認証用のサードパーティシステム (LDAP、RDBMS) に統合。
以下も参照してください。:
埋め込みサードパーティライブラリ
EBX® の独立性と相互運用性を高めるために、独自のサードパーティライブラリが埋め込まれています。一部が変更され、競合回避されている場合も、これらは正式な Java API であるため、その他は変更しないでおく必要があります。
競合を引き起こす可能性があるのは次のとおりです。
-
Apache Geronimo JSON
-
Apache Geronimo JSON Bind
-
Jakarta Activation API
-
Jakarta Annotations API
-
Jakarta JSON API
-
Jakarta JSON Binding
-
Jakarta Transaction API
-
Jakarta WS RS
-
Jakarta XML Bind
-
Jakarta XML SOAP messaging API
-
Jakarta XML WS API
-
MicroProfile OpenAPI
サードパーティライブラリのバージョンまたは詳細については、
TIB_ebx_6.2.3_license.pdf を参照してください。
これらのライブラリはすでに統合されているため、カスタム Web アプリケーションにこれらを新たに追加しないでください。そうでない場合は、リンケージエラーが発生する可能性があります。さらに、同じ理由で、
ebx.jar ライブラリ以外にこれらを展開しないでください。
必須のサードパーティライブラリ
EBX® には、いくつかのサードパーティ Java ライブラリが必要です。これらのライブラリは展開し、
ebx.jar のクラスローダーからアクセス可能にする必要があります。使用されるアプリケーションサーバーおよび Java ランタイム環境によっては、これらのライブラリがすでに存在する場合や、手動で追加する必要がある場合があります。
データ圧縮ライブラリ
EBX® バージョン 6.2.3 以降、個別の圧縮ライブラリの展開は不要になりました。以下の 2 つの圧縮モードがサポートされています。
-
ネイティブは最適な高速モードですが、Linux/Windows の x86\_64 で Java 21 以降を使用している場合にのみ利用できます。
-
Java 17 を使用している場合は、純粋な Java 実装も利用できます。使用している圧縮タイプを確認するには、
kernel.logを開き、以下を探してください。 -
Compression: Java、または -
Compression: Nativeネイティブ圧縮が使用されていない場合、その理由はログに表示されます。圧縮パフォーマンスに問題がある場合は、ebx.propertiesで以下のパラメータを使用して調整してください。 -
ebx.compression.dictSizeは辞書サイズを制御し、デフォルトは 16 KB です。推奨範囲は 1 KB から 64 KB です。ただし、辞書が大きくなると以下のトレードオフが発生することに注意してください。圧縮率 (対数進行) は向上しますが、圧縮速度は低下します (線形増加)。注意:この値は事前に設定する必要があります。EBX® が特定のテーブル定義の辞書を作成した後、別の辞書は作成しません。新しい値は、辞書を持たないテーブル、または新しいテーブル定義にのみ適用されます。 -
ebx.compression.levelは圧縮レベルを制御します。可能な値は FAST、BALANCED、HIGH (デフォルト) です。圧縮を高速化するにはレベルを下げますが、圧縮率は低下します。この設定は、次の圧縮操作にすぐに適用されます。この設定は解凍には目立った影響を与えません。
データベースドライバー
EBX® リポジトリにはデータベースが必要です。一般に、必要なドライバーは、データソースが使用されている場合は、データソースとともに構成されます。メイン構成ファイルで定義されているデータベースに応じて、次のいずれかのドライバーが必要です。どのデータベースを使用する場合でも、JDBC クライアントドライバーのバージョンは、データベースサーバーのバージョン以上である必要があることに注意してください。
|
H2
|
バージョン 2.2.224 が検証されました。H2 は運用環境ではサポートされていないことに注意してください。
H2 リポジトリがバージョン 1.0 ドライバーで構築されている場合は、この v2 プロセスへの移行を適用する必要があります。
|
|
Oracle JDBC
|
Oracle データベース 23ai は、最新のパッチセットアップデートで検証されています。
データベースサーバーのバージョンと Java ランタイム環境のバージョンに応じて、使用するドライバーを決定します。JDK 17 または 21 で認定されたライブラリ
ojdbc17.jar をダウンロードします。
|
|
SQL Server JDBC
|
すべての修正パッチとメンテナンスパッチが適用された SQL Server 2016 以降が検証されています。
古いバージョンではいくつかの問題が発生しているため、最新の JDBC ドライバーを使用してください。
たとえば、使用する Java ランタイム環境のバージョンに応じて、
mssql-jdbc-13.2.1.jre11.jar ライブラリを含めます。
|
|
PostgreSQL
|
PostgreSQL Java 8 が検証されています。
データベースサーバーおよび Java ランタイム環境用にリリースされた最新の JDBC ドライバーバージョン 4.2 を追加します。
|
以下も参照してください。:
SMTP とメール
使用されている Web アプリケーションサーバーに応じて、電子メール管理用のライブラリ
Jakarta Mail API がすでに提供されている場合もあれば、手動で追加する必要がある場合もあります。
EBX® には、この API のバージョン 2.1 と互換性のあるライブラリが必要です。構成の詳細については、SMTP とメールの有効化と構成 を参照してください。
手動インストールを容易にするために、
jakarta.mail-2.0.5.jar が提供され、ebx.software/lib/lib-mail ディレクトリに配置されています。
以下も参照してください。:
Secure Socket Layer (SSL)
SSL 機能のアクティベーション、構成、管理は、使用される Web アプリケーションサーバーと密接にリンクされています。したがって、適切な Web アプリケーションサーバーのドキュメントを参照する必要があります (例、Tomcat SSL/TLS Configuration How-To)。
以下も参照してください。:
Java メッセージサービス (JMS)
JMS を使用する場合は、バージョン 3.1 以上が必要です。
Jakarta EE アプリケーションサーバーまたは Servlet/Java Server Pages (JSP) 実装のどちらが使用されているかに応じて、必要なライブラリは次のようになります。
-
Jakarta EE (Enterprise Edition) に基づくアプリケーションサーバーの場合、必要な JMS プロバイダーライブラリはデフォルトで使用できます。詳細については、https://jakarta.ee/specifications/platform/ を参照してください。
-
ApacheTomcat などの JavaSE (Java Platform Standard Edition) を使用した Servlet/JavaServer Pages (JSP) 実装の場合、Apache ActiveMQ などの JMS プロバイダーライブラリの追加が必要な場合があります。詳細については、https://www.oracle.com/java/technologies/java-se-glance.html を参照してください。
注意:
EBX® では、サポートされる JMS モデルは Point-to-Point (PTP) のみです。PTP システムでは、メッセージのキューが許可されます。
以下も参照してください。:
Web アプリケーション
EBX® は、追加するカスタム EBX® モジュール Web アプリケーションがない場合に直接展開可能な、事前パッケージ化された EAR を提供します。カスタム Web アプリケーションを EBX® モジュールとして展開する場合は、ビルトイン Web アプリケーションと同一レベルでパッケージ化されたカスタムモジュールを含む EAR を再構築することをお勧めします。
注意:
/ パスコンテキストでの Web アプリケーションの展開はサポートされなくなりました。パスコンテキストは空にすることはできず、/ と等しくすることもできません。さらに、異なる深さのパスでの Web アプリケーションの展開は推奨されません。すべての Web アプリケーションパスのコンテキストは、パスの深さを同一に設定する必要があります。
詳細については、この章の末尾の EBX® EAR の再パッケージ化に関する注意事項を参照してください。
EBX® ビルトイン Web アプリケーション
EBX® には、次のビルトイン Web アプリケーションが含まれています。
| Web アプリケーション名 | 説明 | 必須 |
|---|---|---|
ebx |
起動時に初期化を処理する EBX® エントリポイント。詳細については、展開の詳細を参照してください。 | はい |
ebx-root-1.0 |
EBX® ルート Web アプリケーション。EBX® を使用するアプリケーションでは、ルート Web アプリケーションを展開する必要があります。 | はい |
ebx-ui |
EBX® ユーザーインターフェイス Web アプリケーション | はい |
ebx-authentication |
EBX® 認証アプリケーション | はい |
ebx-manager |
EBX® ユーザーインターフェイス Web アプリケーション | はい |
ebx-dma |
EBX® データモデルアシスタント。ユーザーインターフェイスによるデータモデルの作成を支援します。 **注意:**データモデルアシスタントでは、ebx-manager ユーザーインターフェイス Web アプリケーションを展開する必要があります。 |
はい |
ebx-dataservices |
EBX® データサービス Web アプリケーション。データサービスでは、SOAP 操作および Web サービス記述言語 WSDL 生成標準を使用するか、ビルトイン RESTful サービスを使用して、EBX® リポジトリとの外部インタラクションを許可します。 **注意:**EBX® Web サービスジェネレーターでは、ebx-manager ユーザーインターフェイス Web アプリケーションを展開する必要があります。 |
はい |
ebx-ide |
EBX® 統合開発環境 Web アプリケーション。 | はい |
ebx-assistant |
EBX® アシスタント Web アプリケーション。 | はい |
ebx-hub |
EBX® Hub Web アプリケーション。 | いいえ |
EBX® アドオン Web アプリケーション
カスタム Web アプリケーション
EBX® モジュールの要件に準拠するカスタム Web アプリケーションを展開することにより、EBX® の動作を拡張およびカスタマイズできます。
以下も参照してください。:
展開の詳細
はじめに
このセクションでは、「
ebx」Web アプリケーションの展開に使用可能なさまざまなオプションについて説明します。これらのオプションは、展開記述子 (WEB-INF/web.xml) で使用可能で、メイン構成ファイルで定義されたプロパティによって補完されます。
注意:
JBoss アプリケーションサーバーの場合、未使用のリソースはすべて
WEB-INF/web.xml 展開記述子から削除する必要があります。
以下も参照してください。:
ユーザーインターフェイスと Web アクセス
Web アプリケーション「
ebx」(ebx.war としてパッケージ化) には、初期化を処理し、EBX® Web ツールの唯一のユーザーインターフェイスのエントリポイントとして機能する FrontServlet サーブレットが含まれています。
FrontServlet の展開記述子の構成
Webアプリケーション「
ebx」のファイル WEB-INF/web.xml で、次のエレメントを FrontServlet 用に構成する必要があります。
/web-app/servlet/load-on-startup
|
EBX® の起動時に FrontServlet が確実に初期化されるようにするには、web.xml 展開記述子でエレメント <load-on-startup>1</load-on-startup> を指定する必要があります。
|
/web-app/servlet-mapping/url-pattern
|
FrontServlet はパス「/」にマッピングする必要があります。
|
FrontServlet 用アプリケーションサーバーの構成
FrontServlet には、ServletContext など他のコンテキストへのアクセス許可が必要です。
たとえば、Tomcat では、この構成は、構成ファイル
server.xml の属性 crossContext を使用して次のように実行されます。
<Context path="/ebx" docBase="(...)" crossContext="true"/>
EBX® リポジトリのデータソース
注意:
EBX® のメイン構成でプロパティ
ebx.persistence.url が指定されている場合、以下の環境エントリは EBX® ランタイムにより無視されます。このオプションは、便宜上提供されているだけです。完全構成可能なデータソースを使用することを常にお勧めします。特に、接続プールのサイズは、同時ユーザーの数に応じて設定する必要があります。このプロパティの詳細については、EBX® リポジトリの構成を参照してください。
EBX® の JDBC データソースは、「
ebx」Web アプリケーションの展開記述子 WEB-INF/web.xml で次のように指定されます。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 |
|---|---|---|
jdbc/EBX_REPOSITORY |
JBoss:java:/EBX_REPOSITORY |
EBX® リポジトリの JDBC データソース Java タイプ:javax.sql.DataSource |
以下も参照してください。:
メールセッション
注意:
EBX® のメイン構成で
ebx.mail.activate が true に設定されていない場合、またはプロパティ ebx.mail.smtp.host が指定されている場合は、以下の環境エントリは、EBX® ランタイムにより無視されます。これらのプロパティの詳細については、EBX® メイン構成プロパティの SMTP を参照してください。
SMTP とメールは、次のように「
ebx」Web アプリケーションの展開記述子 WEB-INF/web.xml で宣言されます。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 |
|---|---|---|
mail/EBX_MAIL_SESSION |
JBoss:java:/EBX_MAIL_SESSION |
EBX® からメールを送信するために使用される Java メールセッション Java タイプ:jakarta.mail.Session |
JMS 接続ファクトリー
注意:
EBX® メイン構成がプロパティ
ebx.jms.activate で JMS を有効にしない場合、以下の環境エントリは EBX® ランタイムにより無視されます。このプロパティの詳細については、EBX® メイン構成プロパティの JMS を参照してください。
JMS 接続ファクトリーは、次のように「
ebx」Web アプリケーションの展開記述子 WEB-INF/web.xml で宣言されます。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 | 必須 |
|---|---|---|---|
jms/EBX_JMSConnectionFactory |
JBoss:java:/EBX_JMSConnectionFactory |
アプリケーションサーバーの運用環境で構成された JMS プロバイダーとの接続を作成するために EBX® によって使用される JMS 接続ファクトリー。 Java タイプ:jakarta.jms.ConnectionFactory |
はい |
注意:
JNDI 機能を備えた WildFly JBoss アプリケーションサーバーに展開する場合は、必要なすべてのリソース名を JNDI 名に追加マッピングするために
EBX.ear を更新する必要があります。
データサービス用の JMS
デフォルトの HTTP の代わりに JMS を使用するようデータサービスを構成するには、JMS 接続ファクトリーと、「
ebx」Web アプリケーションの WEB-INF/web.xml 展開記述子で宣言された次のキューを構成する必要があります。これは、データサービス用の JMS を構成するための唯一の方法です。
ヘッダーフィールド
JMSReplyTo が定義されている場合、SOAP リクエストを受信すると、オプションで SOAP 応答が返されます。この場合、フィールド JMSCorrelationID および JMSType は保持されます。
関連する EBX® の主な構成プロパティの詳細については、JMS を参照してください。
注意:
EBX® のメイン構成がプロパティ
ebx.jms.activate を介して JMS をアクティブ化しない場合、以下の環境エントリは EBX® ランタイムによって無視されます。このプロパティの詳細については、EBX® のメイン構成プロパティの JMS を参照してください。
| 予約済みリソース名 | デフォルトの JNDI 名 | 説明 | 必須 |
|---|---|---|---|
jms/EBX_QueueIn |
JBoss:java:/jms/EBX_QueueIn |
他のアプリケーションによって EBX® に送信される着信 SOAP リクエストの JMS キュー。 Java タイプ: jakarta.jms.Queue |
いいえ |
jms/EBX_QueueFailure |
JBoss:java:/jms/EBX_QueueFailure |
エラー時の JMS キュー。これには、エラー発生時の受信 SOAP リクエストが含まれています。これにより、必要に応じてこれらのメッセージを再生できます。 Java タイプ: jakarta.jms.Queue **注意:**このプロパティの読み取りには、メイン構成で、プロパティ ebx.jms.activate.queueFailure によりエラー時のキューも有効化する必要があります。これらのプロパティの詳細については、EBX® メイン構成プロパティの JMS を参照してください。 |
いいえ |
JAR ファイルスキャナー
Web アプリケーションサーバーの起動を高速化するには、JAR ファイルスキャナーの構成を変更して、少なくとも
ebx.jar および ebx-addons.jar ライブラリを除外する必要があります。
たとえば、Tomcat では、
catalina.properties ファイルの tomcat.util.scan.StandardJarScanFilter.jarsToSkip プロパティでこれを実行する必要があります。
インストールに関する注意事項
EBX® は、Servlet 6.0 以上をサポートする任意の Jakarta EE 10 以降のアプリケーションサーバーに導入できます。導入とインストールに関する注意事項については、次のドキュメントを参照してください。
注意:
-
Jakarta EE 10 アプリケーションサーバーの EBX® インストールに関する注意事項では、各アプリケーションサーバーのネイティブドキュメントが置き換えられることはありません。
-
上記は一般的なインストールの推奨ではありません。インストールプロセスは、技術環境、アプリケーションの相互化、配信プロセス、組織の決定などのアーキテクチャ上の決定によって異なります。
-
これらの例では、追加の EBX® モジュールは展開されていません。カスタムモジュールまたはアドオンモジュールを展開するためのベストプラクティスは、他の EBX® モジュールと同じレベルの Web アプリケーションとしてモジュールを使用して EAR を再構築することです。Web アプリケーションは、Java™ 2 Platform Enterprise Edition 仕様 v1.4 で指定されているように、クラスパスの依存関係を宣言する必要があります。J2EE.8.2 オプションのパッケージサポート(...)JAR フォーマットのファイル (例、JAR ファイル、WAR ファイル、RAR ファイル) では、参照 JAR ファイルのマニフェストファイルの Class-Path ヘッダーで参照される JAR ファイルに名前を付けることで、JAR ファイルを参照できます。参照される JAR ファイルの名前は、参照 JAR ファイルの URL に相対的な URL を使用して付けられます。マニフェストファイルは、JAR ファイルではMETA-INF/MANIFEST.MF という名前です。マニフェストファイルの Class-Path エントリのフォーマットは次のとおりです。
Class-Path: list-of-jar-files-separated-by-spaces「工業化」プロセスでは、カスタム EBX® モジュール、EBX® Web アプリケーション、および必要なすべての共有ライブラリを使用して、EAR を自動的に構築するスクリプトの開発を強くお勧めします。 -
予期しない動作を回避するため、クラスローディングシステム内の
ebx.jarまたは他のライブラリの重複を回避するガイドラインに従ってください。