Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerBitronix トランザクションマネージャーにより、中断されていたトランザクションを Mule の再起動時に自動的に復元できます。
Mule インスタンスがクラッシュするか、リソースマネージャー (JMS ブローカーやデータベースなど) との接続が失われると、2 フェーズコミットプロトコル (2PC) の準備フェーズとコミットフェーズの間にあるトランザクションは失敗します。この場合、トランザクションマネージャーは、復元プロセスを実行して、障害の発生時に実行途中だったトランザクションを完了させる必要があります。このような障害はあまり発生しませんが、発生した場合のデータの一貫性を維持するためのメカニズムが必要です。
Bitronix を使用するようにアプリケーションを設定するには、次のようにフローの外部でトランザクションマネージャーを宣言します。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bti="http://www.mulesoft.org/schema/mule/ee/bti"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/ee/bti http://www.mulesoft.org/schema/mule/ee/bti/current/mule-bti-ee.xsd">
<bti:transaction-manager/>
...
</mule>
Mule ドメインに関連付けられているすべてのドメインで Bitronix を使用するには、次のようにドメイン設定ファイルで Bitronix をトランザクションマネージャーとして定義します。このように設定すると、ドメインに関連付けられているすべてのアプリケーションが Bitronix を使用するため、個別のアプリケーションでトランザクションマネージャーを宣言する必要はありません。
<?xml version="1.0" encoding="UTF-8"?>
<domain:mule-domain
xmlns:bti="http://www.mulesoft.org/schema/mule/ee/bti"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:domain="http://www.mulesoft.org/schema/mule/ee/domain"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/ee/domain http://www.mulesoft.org/schema/mule/ee/domain/current/mule-domain-ee.xsd
http://www.mulesoft.org/schema/mule/ee/bti http://www.mulesoft.org/schema/mule/ee/bti/current/mule-bti-ee.xsd">
<bti:transaction-manager/>
<!-- ... -->
</domain:mule-domain>
ドメインの詳細については、「共有リソース」を参照してください。
Studio からアプリケーションやドメインに Bitronix を追加する手順は次のとおりです。
[Global Elements (グローバル要素)] タブに移動します。
[Create (作成)] ボタンをクリックします。
Bitronix Transaction Manager
を検索します。
Bitronix のデフォルト設定値は、ほとんどのユースケースに適しています。ただし、システムプロパティまたは $MULE_HOME/conf
ディレクトリの wrapper.conf
ファイルを使用してトランザクションマネージャーをカスタマイズすることもできます。
Bitronix の設定属性を下表に示します。
設定属性 | 説明 | デフォルト値 |
---|---|---|
|
XA トランザクションのタイムアウト (秒)。 |
60 |
|
XA トランザクションの復元実行間隔 (秒)。 |
60 |
|
XA トランザクションログに登録するためのトランザクションマネージャーの一意の ID。この値は、Mule インスタンスごとに一意である必要があります。 |
ホスト IP と、HA で動作している場合はクラスターノード ID との組み合わせ。 |
Bitronix とのインテグレーションにより、Database Connector でリソースプーリングを実装するときには必ず使用する Database Connector 用のデータソース接続プールが提供されます。
すべての接続用の共有プーリングデータソースを設定できます。これにより、アプリケーションによってこれらのデータソースが集中して使用されていない場合の接続使用状況が改善されます。
<?xml version="1.0" encoding="UTF-8"?>
<mule-domain xmlns="http://www.mulesoft.org/schema/mule/ee/domain"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:db="http://www.mulesoft.org/schema/mule/db"
xmlns:bti="http://www.mulesoft.org/schema/mule/ee/bti"
xmlns:spring="http://www.mulesoft.org/schema/mule/spring"
xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/ee/bti http://www.mulesoft.org/schema/mule/ee/bti/current/mule-bti-ee.xsd
http://www.mulesoft.org/schema/mule/ee/domain http://www.mulesoft.org/schema/mule/ee/domain/current/mule-domain-ee.xsd
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd">
<spring:config name="springConfig" files="domain-config/datasource-beans.xml"/>
<bti:transaction-manager/>
<bti:xa-data-source-pool name="pooledDataSource" dataSource-ref="jdbcDataSource"/>
<db:generic-config name="dbConfig" dataSource-ref="pooledDataSource"/>
</mule-domain>
プーリングデータソースの設定属性を下表に示します。
属性 | 説明 | 必須 | デフォルト値 |
---|---|---|---|
|
コネクタが参照できるようにプールを識別します。 |
はい |
|
|
JDBC データソースオブジェクトへの参照。 |
はい |
|
|
プールに格納する最小の接続数を定義します。 |
いいえ |
4 |
|
プールに格納できる最大の接続数を定義します。 |
いいえ |
16 |
|
プール内のアイドル接続を閉じるまでの秒数。 |
いいえ |
60 |
|
プールが枯渇したときに一度に取得を試みる接続数を決定します。 |
いいえ |
1 |
|
プールが枯渇したときに |
いいえ |
30 |
|
プールされた接続ごとにキャッシュされるステートメント数を決定します。0 を指定するとキャッシュは無効になります。 |
いいえ |
5 |
Mule には自動的に実行される復元手順があり、設定は不要です。システムクラッシュ後に Mule が再起動すると、XA トランザクションに関与していたすべてのリソースに接続してトランザクション復元プロセスを開始し、すべてのシステムを一貫した状態に保ちます。