jbossにdeploy-hasingletonフォルダを6として使用しています。これにより、クラスタノードからのビジネス情報要求を制御するために使用されるシングルトンBeanを作成できました。これらのメソッドは、ノード間の並行性を制御するために同期されています(同じデータは異なるノードに存在することはできません)。jbossにHA-Singletonを移行/作成する7
今私は、JBoss 7への移行だ、とその展開-hasingletonフォルダが消えて以来、私は公式の例を以下してきたこと:
を問題は、これらの例があまりにも些細なことであり、私はビジネスロジックメソッドをどこに置くことができるのか理解できませんでした。 だから私は実装SingletonService、でそのロジックを配置してみました:サービス、MyInterface
そして、私は次のようにgetValueメソッドを変更した:
クライアント側で@Override
public MyInterface getValue() throws IllegalStateException,
IllegalArgumentException {
return this;
}
:
@Override
public List<Long> myMeth(Long arg1, int arg2) {
LOGGER.log("loadGroups() is called()");
ServiceController<?> service = CurrentServiceContainer.getServiceContainer().getService(
GroupDistributorService.SINGLETON_SERVICE_NAME);
if (service != null) {
return ((MyInterface) service.getValue()).getMyMethod(arg1, arg2);
} else {
throw new IllegalStateException("Service '" + GroupDistributorService.SINGLETON_SERVICE_NAME + "' not found!");
}
}
これは正しいアプローチではないかと思います。次に、これはマスターシングルトンサービスを含むノードで動作するように見えます。しかし、他のノードでは、シングルトンサービスを呼び出すときにロックされ、タイムアウトになります。
注[リンクすることを(答えは推奨されません)(http://meta.stackoverflow.com/tags/link-only-answers/info)、SOの回答は解決策の検索の終点にする必要があります時間の経過とともに失効する傾向があります)。リンクを参考にして、ここにスタンドアロンの概要を追加することを検討してください。 – kleopatra
これは、モジュール全体ではなく、単一のBeanがha-singletonをロードできるようにしますか? –