In that case you need to check the JVM that you believe should be listening for the RMI registry e.g. has it had any crashes/heapdumps/core dumps ?
Is it a dedicated JVM designed just to handle the RMI Registry?
Maximo's use of RMI works best when it has a dedicated RMI registry because the JVM has very little to do so there is a tiny risk that it will crash.
You also need to consider the order that the JVMs were started in.
The first JVM to start will start the RMI registry component and host it until that JVM is shutdown. You need to identify the JVM hosting the RMI registry and make sure it is accessible from where you are trying to connect from. When the first JVM starts it will write a WebSphere log message stating that it is hosting the RMI registry and stating which port it is listening on.
------------------------------
Mark Robbins
Support Lead/Technical Design Authority / IBM Champion 2017 - 2023
Cohesive (previously Vetasi Limited)
https://www.linkedin.com/pulse/maximo-support-advice-from-non-ibm-engineer-article-mark-robbins/------------------------------
Original Message:
Sent: Wed February 28, 2024 04:31 PM
From: Sankar Ganesh
Subject: Maximo - RMI-Registry Connection issue
Yes. Already verified and the ports are same.
It's a clustered environment and ports are working through 'telnet' command.
Thanks!
Original Message:
Sent: 2/28/2024 2:17:00 PM
From: Michael Marsonet
Subject: RE: Maximo - RMI-Registry Connection issue
You will want to verify a couple of properties in your production Maximo environment as it may likely be configured differently than your non-production and if the port or the servername is wrong you will get the error you posted.
For example I have the following
mxe.registry.port=13400
mxe.name=MAXIMO
You will then run the command as you have in the other environments such as "checkmxserver -h<ip address>:13400 -sMAXIMO -u maxadmin -p<password>". replace <ipaddress> with the server ip, hostname where Maximo is running.
If you still get an error then I would check the firewall settings. If Maximo/Websphere is installed on a Windows Server it is likely that the Windows Firewall is blocking the port. If your IBM/SMP/maximo folder is on an Admin workstation and Maximo is running on a different server then it could potentially still be a firewall blocking the connection.
Hope that helps.
Mike
------------------------------
Michael Marsonet
Senior Consultant
Ontracks Consulting
(416) 522-2986
Original Message:
Sent: Wed February 28, 2024 08:40 AM
From: Sankar Ganesh
Subject: Maximo - RMI-Registry Connection issue
Hi all,
We are having issues while connecting to the RMI registry in Maximo.
It works in DEV, PROD environments. But not in TEST.
While testing the RMI connection using
checkMxServer utility, it is partially working. That is, it is printing the servers hosting RMI Registry, but not connecting to the Maximo server.
Kindly share your ideas/suggestions.
Please find below error details.
(masked the host address to xx.xx.for security reasons)
UNABLE TO CONNECT TO MAXIMO SERVER....
psdi.util.MXSystemException: system#notboundexception
at psdi.util.RMISession.connect(RMISession.java:180)
at psdi.server.CheckMXServer.main(CheckMXServer.java:148)
Caused by: java.rmi.ConnectException: Connection refused to host: 10.xx.xxx.xx; nested exception is:
java.net.ConnectException: Connection timed out: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:635)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:228)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:214)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:143)
at psdi.server.MXServer_Stub.lookup(Unknown Source)
at psdi.util.RMISession.authenticateUser(RMISession.java:397)
at psdi.util.RMISession.loadUserInfo(RMISession.java:293)
at psdi.util.RMISession.connect(RMISession.java:72)
... 1 more
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:90)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:380)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:236)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:218)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.net.Socket.connect(Socket.java:682)
at java.net.Socket.connect(Socket.java:622)
at java.net.Socket.<init>(Socket.java:485)
at java.net.Socket.<init>(Socket.java:255)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:52)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:160)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:629)
Thanks!
Sankar