0

まず、この質問をご覧いただきありがとうございます。PaaS (Openshift Origin) で qpid を起動して実行する際に問題が発生しています。

ReST APIを使用せずにサーバーにコピーするだけで、鈍い力の方法を使用して初めて実行します。qpid を実行しようとすると発生するエラーは次のとおりです。

[dsxcore-dsx.dsx.org apache-qpid]\> qpid-broker-0.22/bin/qpid-server
System Properties set to -Damqj.logging.level=info -DQPID_HOME=/var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22 -DQPID_WORK=apache-qpid/work
QPID_OPTS set to -Damqj.read_write_pool_size=32 -DQPID_LOG_APPEND=
Using QPID_CLASSPATH /var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/lib/qpid-all.jar:/var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/lib/plugins/*:/var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/lib/opt/*
Info: QPID_JAVA_GC not set. Defaulting to JAVA_GC -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError
Info: QPID_JAVA_MEM not set. Defaulting to JAVA_MEM -Xmx1024m
[Broker] BRK-1006 : Using configuration : /var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/apache-qpid/work/config.json
[Broker] BRK-1007 : Using logging configuration : /var/lib/openshift/52851c6e8000fdf616000015/apache-qpid/qpid-broker-0.22/etc/log4j.xml
[Broker] BRK-1001 : Startup : Version: 0.22 Build: 1486100
[Broker] BRK-1010 : Platform : JVM : Oracle Corporation version: 1.7.0_45-mockbuild_2013_10_16_17_47-b00 OS : Linux version: 3.11.4-201.fc19.x86_64 arch: amd64
[Broker] BRK-1011 : Maximum Memory : 1,056,309,248 bytes
[Broker] BRK-1002 : Starting : Listening on TCP port 5672
[Broker] MNG-1001 : JMX Management Startup
[Broker] MNG-1002 : Starting : RMI Registry : Listening on port 8999
[Broker] MNG-1002 : Starting : JMX RMIConnectorServer : Listening on port 9099
[Broker] MNG-1004 : JMX Management Ready
[Broker] MNG-1001 : Web Management Startup
Exception during startup: java.lang.RuntimeException: Failed to start http management on ports [PortAdapter [id=1cdbe831-ee81-4039-aa46-4b07865189bf, name=HTTP]]
java.lang.RuntimeException: Failed to start http management on ports [PortAdapter [id=1cdbe831-ee81-4039-aa46-4b07865189bf, name=HTTP]]
at org.apache.qpid.server.management.plugin.HttpManagement.start(HttpManagement.java:180)
at org.apache.qpid.server.management.plugin.HttpManagement.setState(HttpManagement.java:156)
at org.apache.qpid.server.model.adapter.AbstractAdapter.setDesiredState(AbstractAdapter.java:99)
at org.apache.qpid.server.model.adapter.BrokerAdapter.changeState(BrokerAdapter.java:907)
at org.apache.qpid.server.model.adapter.BrokerAdapter.setState(BrokerAdapter.java:870)
at org.apache.qpid.server.model.adapter.AbstractAdapter.setDesiredState(AbstractAdapter.java:99)
at org.apache.qpid.server.configuration.updater.ChangeStateTask.call(ChangeStateTask.java:59)
at org.apache.qpid.server.configuration.updater.ChangeStateTask.call(ChangeStateTask.java:28)
at org.apache.qpid.server.configuration.updater.TaskExecutor.executeTask(TaskExecutor.java:213)
at org.apache.qpid.server.configuration.updater.TaskExecutor.access$200(TaskExecutor.java:46)
at org.apache.qpid.server.configuration.updater.TaskExecutor$CallableWrapper$1.run(TaskExecutor.java:252)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.qpid.server.configuration.updater.TaskExecutor$CallableWrapper.call(TaskExecutor.java:247)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
4

2 に答える 2

1

デフォルトでは、Qpid Broker (Java) はポート 8080 で HTTP 管理インターフェイスを開始します。表示されているスタック トレースの最も可能性の高い説明は、他のプロセスがそのポートに既にバインドされていることです。この問題により、Qpid の開始が妨げられています。(ポートは共有システム リソースであり、一度に 1 つのプロセスだけがポートにバインド [=listen on] できます)。

続行する前に、ポートの競合を解決する必要があります。これには 2 つの方法があります。他のプロセスを特定し、別のポートを使用するように再構成するか、Quid を再構成します。

前者を選択した場合は、lsofnetstatなどのコマンドを使用して他のプロセスの名前を検出し、そのドキュメントを参照してポート バインドを再構成する方法を確認してください。プロセスが別のユーザーに属している可能性があることに注意してください。

sudo lsof -i:8080

後者のルートを選択する場合、既存の構成ストアがあるかどうかによって手法が異なります。初めてQpid を起動する場合(つまり、ディスクに既存の構成ストアがない場合)、--config-propertyオプションを使用して、デフォルトの HTTP 管理ポートをオーバーライドできます。

./bin/qpid-server --config-property "qpid.http_port=8081"

(ポートの割り当ては構成ストアに永続的に書き込まれるため、その後の再起動には新しい値が使用されます)。

既存の構成ストアがある場合は、--management-modeおよび--management-mode-http-port <port>オプションを使用して、ブローカを管理モードで起動し、一時的な管理ポートをリッスンします。

./bin/qpid-server --management-mode --management-mode-http-port 10080

次に、Web ブラウザーを使用して管理に接続し、競合する HTTP ポートを目的の (未使用の) 値に永続的に再割り当てします。最後に、Qpid を通常どおり (管理モード オプションなしで) 再起動して、ブローカーを通常の操作に戻します。

これらの手法はどちらも、 Qpid ドキュメント内の構成と管理で詳しく説明されています。

于 2013-11-17T23:48:53.420 に答える
0

少し遅すぎるかもしれませんが、それでも.... strace で構成が /home/ userdirectory /config.jsonに移動することがわかりました

于 2017-06-21T12:58:45.683 に答える