3

JMeterを使用して製品を評価するためのパフォーマンステストを行っています。当社の製品はWeblogicサーバーにデプロイされ、Oracleデータベースを備えています。

パフォーマンステストでは、JMeterクライアントはweblogicサーバーにあるEJBのセットにアクセスし、関連する関数を呼び出します。

しかし、テスト後、jmeterログにいくつかの例外が表示されます。以下のテスト中に発生した例外を示します。負荷が原因で、JMeterクライアントがweblogicサーバーのEJBインスタンスにアクセスできないようです。しかし、私にはわかりません。この問題を解決するのを手伝っていただけませんか。

javax.ejb.EJBException: No message was received for: '240' seconds; nested exception is: weblogic.rjvm.PeerGoneException: No message was received for: '240' seconds
weblogic.rjvm.PeerGoneException: No message was received for: '240' seconds
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
    at com.xxxx.xxx.impl.adminagent.AdminAgentInfoSessionBeanWithAffinity_337280_AdminAgentInfoSessionRemoteWithAffinityImpl_1034_WLStub.setAdminAgentInfoForSecureElement(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:73)
    at $Proxy7.setAdminAgentInfoForSecureElement(Unknown Source)
    at com.xxxx.xxx.bench.subscription.SubscriptionUseCases.addAdminAgentInfo(SubscriptionUseCases.java:388)
    at com.xxxx.xxx.bench.sampler.m1.create.AddAATriggerInfoSampler.runTest(AddAATriggerInfoSampler.java:145)
    at org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:165)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:300)
    at java.lang.Thread.run(Unknown Source)
javax.ejb.EJBException: No message was received for: '240' seconds; nested exception is: weblogic.rjvm.PeerGoneException: No message was received for: '240' seconds
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.unwrapRemoteException(RemoteBusinessIntfProxy.java:112)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:91)
    at $Proxy7.setAdminAgentInfoForSecureElement(Unknown Source)
    at com.xxxx.xxx.bench.subscription.SubscriptionUseCases.addAdminAgentInfo(SubscriptionUseCases.java:388)
    at com.xxxx.xxx.bench.sampler.m1.create.AddAATriggerInfoSampler.runTest(AddAATriggerInfoSampler.java:145)
    at org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:165)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:300)
    at java.lang.Thread.run(Unknown Source)
Caused by: weblogic.rjvm.PeerGoneException: No message was received for: '240' seconds
4

1 に答える 1

3

Oracle Forum Postによると、これは、クライアント(この場合はJMeter)とサーバー(ManagedServerにデプロイされたEJBアプリケーション)の間にネットワーク接続がなく、特定の制限時間(デフォルト:240秒)でPeerGoneExceptionがスローされた場合に発生します。

実行しているパフォーマンステスト構成が実際の本番レベルのトラフィックのシミュレーションである場合は、WebLogicサーバーのチューニングを実行することをお勧めします。

チューニングを実行するには、[管理コンソール]->[サーバー]->[serverName]-> [チューニング(タブ)]-> [詳細設定](下部のリンク)に移動します。Period LengthおよびIdle Periods Until Timeoutは、変更する必要のあるプロパティです。デフォルト値の240秒は、次のように計算されます。期間の長さ*タイムアウトまでのアイドル期間。したがって、これらの値を調整して、最適な値を設定します(JMeterパフォーマンステストに基づく)。さまざまな値を試して、デフォルト値に近い最適値を決定してください。

于 2012-10-31T10:02:31.870 に答える