JMX не дает удаленно подключиться
От: RavshanKos Россия  
Дата: 18.02.08 15:16
Оценка:
Есть веб-приложение в котором крутится встроенный ActiveMQ. Он запускается через слушатель контекста, в web.xml:
<context-param>
    <param-name>brokerURI</param-name>
    <param-value>/WEB-INF/activemq.xml</param-value>
</context-param>
<listener>
    <listener-class>
        org.apache.activemq.web.SpringBrokerContextListener
    </listener-class>
</listener>

activemq.xml:
<beans>
    <broker xmlns="http://activemq.org/config/1.0" useJmx="true">
        <managementContext>
            <managementContext useMBeanServer="true"
                createMBeanServer="false" createConnector="false" />
        </managementContext>
        <transportConnectors>
            <transportConnector uri="tcp://localhost:61616" />
            <transportConnector uri="vm://localhost" />
        </transportConnectors>
    </broker>
</beans>

Т.е. брокер не создаёт ни мбин-сервера, ни коннектора, а пользуеться тем, что есть в JVM.
Приложение крутится под томкатом 6.0.14, который запускается со след. параметрами:
-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

Т.е. аутентификация отключена и ссл тоже...

Мне надо мониторить очереди брокера. Локально всё нормально, что из-под jconsole'и, что программно:
jconsole:
jconsole service:jmx:///jndi:rmi://hostname:1099/jmxrmi

java:
JMXServiceURL url = new JMXServiceURL(
    "service:jmx:rmi:///jndi/rmi://hostname:1099/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();


С другой же машины вообще никак:
jconsole:

Connection Failed: Retry?

The connection to
service:jmx:rmi:///jndi/rmi://hostname:1099/jmxrmi
did not succeed/
Would you like to try again?

[connect] [cancel]


java:

java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:94)
at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2239)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:271)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:207)
тут моя вторая строчка из выше приведенного кода.....

Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:520)
at java.net.Socket.connect(Socket.java:470)
at java.net.Socket.<init>(Socket.java:367)
at java.net.Socket.<init>(Socket.java:180)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
... 44 more


Самое интересное, что телнетом если зайти на 1099 порт, то его кто-то слушает:

telnet hostname 1099
Trying 192.168.0.7...
Connected to hostname.
Escape character is '^]'.
testtesttestettetstttetsstettste
Connection closed by foreign host.


Где я напортачил?
Re: JMX не дает удаленно подключиться
От: Blazkowicz Россия  
Дата: 18.02.08 15:19
Оценка:
Здравствуйте, RavshanKos, Вы писали:

RK>

RK>java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is:
RK> java.net.ConnectException: Connection refused

RK>Где я напортачил?

Странно, что машина другая, а Connection refused to host: 127.0.1.1.
Re: JMX не дает удаленно подключиться
От: C0s Россия  
Дата: 18.02.08 15:22
Оценка:
Здравствуйте, RavshanKos, Вы писали:

мене кажется странным, что на уровне java:

RK>java:

RK>java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is:
RK> java.net.ConnectException: Connection refused


и на уровне telnet

RK>telnet hostname 1099
RK>Trying 92.168.0.7...


hostname ресолвится в разные ip-адреса. наверное, имеет смысл начать с проверки etc/hosts и внутрисетевого dns
Re[2]: JMX не дает удаленно подключиться
От: RavshanKos Россия  
Дата: 18.02.08 19:26
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>мене кажется странным, что на уровне java:


RK>>java:

C0s>

RK>>java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is:
RK>> java.net.ConnectException: Connection refused


C0s>и на уровне telnet


C0s>

RK>>telnet hostname 1099
RK>>Trying 92.168.0.7...


C0s>hostname ресолвится в разные ip-адреса. наверное, имеет смысл начать с проверки etc/hosts и внутрисетевого dns

Да, наверно причина где-то здесь...
Вот нашёл описание такой же проблемы, тоже убунта стоит на машине куда подцепиться не могу...
Re[3]: JMX не дает удаленно подключиться
От: RavshanKos Россия  
Дата: 18.02.08 19:32
Оценка:
Здравствуйте, RavshanKos, Вы писали:

C0s>>hostname ресолвится в разные ip-адреса. наверное, имеет смысл начать с проверки etc/hosts и внутрисетевого dns

RK>Да, наверно причина где-то здесь...
RK>Вот нашёл описание такой же проблемы, тоже убунта стоит на машине куда подцепиться не могу...
Вот и тут тоже убунта + 6-я ява...
Re[3]: JMX не дает удаленно подключиться
От: RavshanKos Россия  
Дата: 19.02.08 07:03
Оценка:
Здравствуйте, RavshanKos, Вы писали:

C0s>>hostname ресолвится в разные ip-адреса. наверное, имеет смысл начать с проверки etc/hosts и внутрисетевого dns

RK>Да, наверно причина где-то здесь...
RK>Вот нашёл описание такой же проблемы, тоже убунта стоит на машине куда подцепиться не могу...
Да! Проблема была именно в этом! В /etc/hosts было:

127.0.0.1 localhost
127.0.1.1 hostname-desktop

заменил на:

127.0.0.1 localhost
192.168.0.7 hostname.domain.ru hostname hostname-desktop

Всё заработало!
Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.