0

2 つの WAR ファイルにパッケージ化された 2 つの Java アプリケーションで実行されている tomcat 7.0.42 を持つ 2 つの Linux サーバーがあります。LinuxでJDK7u25を使用していますが、そのうちの1つにまだjdk1.4.2へのシンボリックリンクがあります(管理者権限がないため、変更できません)。

正しいシンボリック リンク /usr/bin/java --> jdk 7 を持つ Linux サーバーは正常に動作します。アプリケーションは問題なく実行されています。

/usr/bin/java --> jdk1.4.2 を持つ他の Linux サーバーでは、tomcat に jdk 7 に設定された JAVA_HOME (JAVA_HOME=//jdk_1.7.0.25/) があり、デプロイ時にエラーがスローされます。アプリ。私のアプリには Forkjoin API が必要です (jdk 7 でのみ使用可能)。

これら 2 つのサーバーの唯一の違いは、シンボリック リンクです。

動作中の tomcat (ディレクトリ + アプリ + JDK) を動作していないサーバーにコピーし、JAVA_HOME をインポートした動作中の JDK に設定しましたが、まだ動作していません... エラー メッセージが表示され続け、アプリを実行できません。

ここにログがありますが、私が何をしているのかを理解するのに十分明確ではないと思います.


 WARNING: Exception encountered when executing an asynchronous task
com.quartetfs.fwk.QuartetRuntimeException: com.quartetfs.biz.pivot.MergeException: [rcpcn0c-29706] Could not merge commit 2 from BoNYslNonCashCollateralsCube( r9szn0c-50673) in BoNYslNonCashCollateralsDistributedCube
    at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.consume(DistributedDimensionsManager.java:493)
    at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.consume(DistributedDimensionsManager.java:408)
    at jsr166.impl.SingleConsumerQueue.tryConsume(SingleConsumerQueue.java:249)
    at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.compute(DistributedDimensionsManager.java:439)
    at jsr166.cancellable.impl.CancellableRecursiveAction.executeTask(CancellableRecursiveAction.java:28)
    at jsr166.cancellable.impl.CancellableForkJoinTask.exec(CancellableForkJoinTask.java:79)
    at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264)
    at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:990)
    at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1631)
    at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:108)
Caused by: com.quartetfs.biz.pivot.MergeException: [rcpcn0c-29706] Could not merge commit 2 from BoNYslNonCashCollateralsCube( r9szn0c-50673) in BoNYslNonCashCollateralsDistributedCube
    at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$DistributedTransactionManager.mergeDimensionsInCube(ADistributedActivePivot.java:1014)
    at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$DistributedTransactionManager.onInitialRemoteCommit(ADistributedActivePivot.java:861)
    at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.consume(DistributedDimensionsManager.java:479)
    ... 9 more
Caused by: java.lang.IllegalArgumentException: The measure CollateralValue.SUM belongs to more than one cube
    at com.quartetfs.biz.pivot.distribution.impl.PolymorphicLocalityIdentifier.validateAndContribute(PolymorphicLocalityIdentifier.java:235)
    at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$MergeDimensionsTask.compute(ADistributedActivePivot.java:770)
    at jsr166.cancellable.impl.CancellableRecursiveAction.executeTask(CancellableRecursiveAction.java:28)
    at jsr166.cancellable.impl.CancellableForkJoinTask.exec(CancellableForkJoinTask.java:79)
    at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264)
    at jsr166e.ForkJoinTask.doInvoke(ForkJoinTask.java:360)
    at jsr166e.ForkJoinTask.invoke(ForkJoinTask.java:691)
    at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$DistributedTransactionManager.mergeDimensionsInCube(ADistributedActivePivot.java:1009)
    ... 11 more

Aug 07, 2013 8:18:11 PM com.quartetfs.tech.distribution.messenger.impl.SafeBroadcastingTask compute INFO: Exception encountered during a broadcasting task. Retrying ... com.quartetfs.fwk.QuartetRuntimeException: java.util.concurrent.ExecutionException: com.quartetfs.fwk.QuartetRuntimeException: com.quartetfs.biz.pivot.MergeException: [rcpcn0c-29706] Could not merge commit 2 from BoNYslNonCashCollateralsCube( r9szn0c-50673) in BoNYslNonCashCollateralsDistributedCube at com.quartetfs.biz.pivot.distribution.impl.RemoteInstanceDistributionManager.onMembersChanged(RemoteInstanceDistributionManager.java:217) at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger$MembersNotificationAction$1.compute(ADistributedMessenger.java:1046) at jsr166e.RecursiveAction.exec(RecursiveAction.java:161) at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264) at jsr166e.ForkJoinTask.doJoin(ForkJoinTask.java:345) at jsr166e.ForkJoinTask.invokeAll(ForkJoinTask.java:756) at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger$MembersNotificationAction.execute(ADistributedMessenger.java:1050) at jsr166.impl.DeferredActionQueue$ConsumerProcedure.consume(DeferredActionQueue.java:181) at jsr166.impl.DeferredActionQueue$ConsumerProcedure.consume(DeferredActionQueue.java:157) at jsr166.impl.SingleConsumerQueue.tryConsume(SingleConsumerQueue.java:249) at jsr166.impl.DeferredActionQueue.executeAll(DeferredActionQueue.java:68) at jsr166.impl.DeferredActionQueue$DeferredExecutionAction.compute(DeferredActionQueue.java:274) at jsr166e.RecursiveAction.exec(RecursiveAction.java:161) at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264) at jsr166e.ForkJoinTask.doInvoke(ForkJoinTask.java:360) at jsr166e.ForkJoinTask.invoke(ForkJoinTask.java:691) at com.quartetfs.tech.distribution.messenger.impl.SafeBroadcastingTask.compute(SafeBroadcastingTask.java:101) at jsr166e.RecursiveTask.exec(RecursiveTask.java:65) at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264) at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:990) at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1631) at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:108) Caused by: java.util.concurrent.ExecutionException: com.quartetfs.fwk.QuartetRuntimeException: com.quartetfs.biz.pivot.MergeException: [rcpcn0c-29706] Could not merge commit 2 from BoNYslNonCashCollateralsCube( r9szn0c-50673) in BoNYslNonCashCollateralsDistributedCube at com.quartetfs.tech.distribution.messenger.future.impl.ACompositeFuture.getResult(ACompositeFuture.java:155) at com.quartetfs.tech.distribution.messenger.future.impl.ACompositeFuture.getOrCancel(ACompositeFuture.java:251) at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.sendMessages(ADistributedMessenger.java:793) at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.sendMessage(ADistributedMessenger.java:864) at com.quartetfs.biz.pivot.distribution.impl.RemoteInstanceDistributionManager.onMembersChanged(RemoteInstanceDistributionManager.java:215) ... 21 more Caused by: com.quartetfs.fwk.QuartetRuntimeException: com.quartetfs.biz.pivot.MergeException: [rcpcn0c-29706] Could not merge commit 2 from BoNYslNonCashCollateralsCube( r9szn0c-50673) in BoNYslNonCashCollateralsDistributedCube at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.consume(DistributedDimensionsManager.java:493) at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.consume(DistributedDimensionsManager.java:408) at jsr166.impl.SingleConsumerQueue.tryConsume(SingleConsumerQueue.java:249) at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.compute(DistributedDimensionsManager.java:439) at jsr166.cancellable.impl.CancellableRecursiveAction.executeTask(CancellableRecursiveAction.java:28) at jsr166.cancellable.impl.CancellableForkJoinTask.exec(CancellableForkJoinTask.java:79) ... 4 more Caused by: com.quartetfs.biz.pivot.MergeException: [rcpcn0c-29706] Could not merge commit 2 from BoNYslNonCashCollateralsCube( r9szn0c-50673) in BoNYslNonCashCollateralsDistributedCube at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$DistributedTransactionManager.mergeDimensionsInCube(ADistributedActivePivot.java:1014) at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$DistributedTransactionManager.onInitialRemoteCommit(ADistributedActivePivot.java:861) at com.quartetfs.biz.pivot.distribution.impl.DistributedDimensionsManager$ApplyInitialMessageTask.consume(DistributedDimensionsManager.java:479) ... 9 more Caused by: java.lang.IllegalArgumentException: The measure CollateralValue.SUM belongs to more than one cube at com.quartetfs.biz.pivot.distribution.impl.PolymorphicLocalityIdentifier.validateAndContribute(PolymorphicLocalityIdentifier.java:235) at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$MergeDimensionsTask.compute(ADistributedActivePivot.java:770) at jsr166.cancellable.impl.CancellableRecursiveAction.executeTask(CancellableRecursiveAction.java:28) at jsr166.cancellable.impl.CancellableForkJoinTask.exec(CancellableForkJoinTask.java:79) at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264) at jsr166e.ForkJoinTask.doInvoke(ForkJoinTask.java:360) at jsr166e.ForkJoinTask.invoke(ForkJoinTask.java:691) at com.quartetfs.biz.pivot.impl.ADistributedActivePivot$DistributedTransactionManager.mergeDimensionsInCube(ADistributedActivePivot.java:1009) ... 11 more

および他の繰り返されるログエラー:


    SEVERE: HelloMessage [HelloMessage-rcpcn0c-47329-62] could not be transmitted
    java.util.concurrent.CancellationException
        at com.quartetfs.tech.distribution.messenger.future.impl.ACompositeFuture.getResult(ACompositeFuture.java:159)
        at com.quartetfs.tech.distribution.messenger.future.impl.ACompositeFuture.getOrCancel(ACompositeFuture.java:251)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.sendMessages(ADistributedMessenger.java:793)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.sendMessage(ADistributedMessenger.java:864)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.broadcast(ADistributedMessenger.java:881)
        at com.quartetfs.tech.distribution.messenger.impl.JGroupsMessenger.ensureMembersCommunication(JGroupsMessenger.java:174)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger$MembersNotificationAction.execute(ADistributedMessenger.java:1004)
        at jsr166.impl.DeferredActionQueue$ConsumerProcedure.consume(DeferredActionQueue.java:181)
        at jsr166.impl.DeferredActionQueue$ConsumerProcedure.consume(DeferredActionQueue.java:157)
        at jsr166.impl.SingleConsumerQueue.tryConsume(SingleConsumerQueue.java:249)
        at jsr166.impl.DeferredActionQueue.executeAll(DeferredActionQueue.java:68)
        at jsr166.impl.DeferredActionQueue$DeferredExecutionAction.compute(DeferredActionQueue.java:274)
        at jsr166e.RecursiveAction.exec(RecursiveAction.java:161)
        at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264)
        at jsr166e.ForkJoinTask.doInvoke(ForkJoinTask.java:360)
        at jsr166e.ForkJoinTask.invoke(ForkJoinTask.java:691)
        at com.quartetfs.tech.distribution.messenger.impl.SafeBroadcastingTask.compute(SafeBroadcastingTask.java:101)
        at jsr166e.RecursiveTask.exec(RecursiveTask.java:65)
        at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264)
        at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:990)
        at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1631)
        at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:108)

    Aug 07, 2013 8:18:29 PM com.quartetfs.tech.distribution.messenger.impl.SafeBroadcastingTask compute
    INFO: Exception encountered during a broadcasting task. Retrying ...
    com.quartetfs.fwk.QuartetRuntimeException: Could not connect to remote instances
        at com.quartetfs.tech.distribution.messenger.impl.JGroupsMessenger.ensureMembersCommunication(JGroupsMessenger.java:188)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger$MembersNotificationAction.execute(ADistributedMessenger.java:1004)
        at jsr166.impl.DeferredActionQueue$ConsumerProcedure.consume(DeferredActionQueue.java:181)
        at jsr166.impl.DeferredActionQueue$ConsumerProcedure.consume(DeferredActionQueue.java:157)
        at jsr166.impl.SingleConsumerQueue.tryConsume(SingleConsumerQueue.java:249)
        at jsr166.impl.DeferredActionQueue.executeAll(DeferredActionQueue.java:68)
        at jsr166.impl.DeferredActionQueue$DeferredExecutionAction.compute(DeferredActionQueue.java:274)
        at jsr166e.RecursiveAction.exec(RecursiveAction.java:161)
        at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264)
        at jsr166e.ForkJoinTask.doInvoke(ForkJoinTask.java:360)
        at jsr166e.ForkJoinTask.invoke(ForkJoinTask.java:691)
        at com.quartetfs.tech.distribution.messenger.impl.SafeBroadcastingTask.compute(SafeBroadcastingTask.java:101)
        at jsr166e.RecursiveTask.exec(RecursiveTask.java:65)
        at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:264)
        at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:990)
        at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1631)
        at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:108)
    Caused by: java.util.concurrent.CancellationException
        at com.quartetfs.tech.distribution.messenger.future.impl.ACompositeFuture.getResult(ACompositeFuture.java:159)
        at com.quartetfs.tech.distribution.messenger.future.impl.ACompositeFuture.getOrCancel(ACompositeFuture.java:251)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.sendMessages(ADistributedMessenger.java:793)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.sendMessage(ADistributedMessenger.java:864)
        at com.quartetfs.tech.distribution.messenger.impl.ADistributedMessenger.broadcast(ADistributedMessenger.java:881)
        at com.quartetfs.tech.distribution.messenger.impl.JGroupsMessenger.ensureMembersCommunication(JGroupsMessenger.java:174)
        ... 16 more

JAVA_HOME を適切な場所に設定した場合、/usr/bin/javaeven の下の Java から取得できますか? Tomcat が実際に Java をどのように使用しているかがわかりません...

4

2 に答える 2

1

Stephen が指摘したように、Tomcat は、サーバーの構成に応じて複数の異なる方法を使用して、どの Java が使用されているかを判別します。

ほとんどの場合、稼働中のサーバーで $JAVA_HOME の存在とカスタムの $PATH 設定を確認することから始めます。/etc/profile、/etc/profile.d/、.bash、.profile などのよくある候補を確認します

実際のサービスとして実行している場合は、Java_HOME がユーザー レベルだけでなく、init スクリプトのサービス レベルでも指定されていることに気付くかもしれません。

現時点では、あなたの質問には答えられていない多くの変数があります。

1.) 両方の場所で同じユーザーとしてプロセスを実行していますか? 2.) ユーザーは、同じ PATH 優先順位と ENV 変数を使用して、両方の場所で同じように構成されていますか? 3.) 初期化スクリプトは同じですか?

可能な限り詳細をお知らせいただくことで、より完全な対応が可能になります。

于 2013-08-08T01:48:35.113 に答える
0

Tomcat はシンボリック リンク /usr/bin/java の下で Java を使用しますか?

Tomcat の構成方法と起動方法に完全に依存します。

しかし、良いニュースは、これらすべてが簡単に読めるシェル スクリプトで行われるということjavaです。起動コマンドまたは init.d スクリプトなどから始めて、トレースします。

また、これらの多くは、使用している Linux ディストリビューションと、それらが Tomcat の「パッケージ」をどのようにまとめたかに依存していることに注意してください。

于 2013-08-08T01:35:28.840 に答える