Error on Protege 3.5 multi-user rmiregistry window

Post Reply
bvasu
Posts: 7
Joined: 12 Feb 2020, 23:41

I have been running Protege 3.5 in multiuser mode on and off for over a month on Windows Server 2016.

However, now when I start it, the server window indicates:

Protege server ready to accept connections...

But in the rmiregistry.exe window I now get:

Could not set up class specific logging
Exception configuring logger
Could not set logger level
Warning: IO exception getting logger. access denied ("java.util.PropertyPermission" "protege.properties.in.user.home" "read")

and I am unable to connect from remote clients.

I noticed a major update of Windows Server 2016 recently but I am not sure that it is related.

I have spent hours trying to fix this but to no avail. Any ideas?

Thanks, Bill
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Hi Bill,

Assuming nothing else has changed to what was a working configuration, I think that perhaps the Windows Server 2016 upgrade made have tightened up / reset some firewall settings and the ports that the Protege Clients use to contact Protege server are now being blocked. This would not be your corporate internet firewall, but the local firewall settings on your specific server.

I've had a look for more information about the message that you are seeing in the RMI Registry console window and the Protege team confirm that although this looks problematic, it can be safely ignored.

The Protege server also needs to be able to access the Protege JAR file - which I think we resolved in a previous post - changing from the file-based URI to an HTTP-based URI to resolve the Java 6/7 issue using the CODEBASE_URL setting. We described how we can use the Viewer's HTTP server to host the "protege.jar" which enables the Protege server to successfully register with the RMI Registry. Therefore, this server must be able to access the Viewer server on port 8080 (or whatever port you have Viewer's Tomcat server listening).

In addition, Protege clients must be able to access the Protege server via the RMI Registry on ports 5100 and 5200. The server also needs to be able to access the RMI Registry via these ports. This post and the linked post that it contains describe how you can change the ports that RMI Registry uses, if your are now restricted and can no longer use the defaults.

It could also be that you have moved to a later version of Java, which swaps the default setting of the RMI Server "Use Code Base" property from false to true. This post describes how you can set this back to "false". Definitely worth looking at if you have not already done so.

Let us know how you get on with these

Jonathan
Essential Project Team
bvasu
Posts: 7
Joined: 12 Feb 2020, 23:41

Hi Jonathan,

Thanks once again for your quick and thorough reply.

We have checked all the ports and they appear to be open.

I did uncomment the line set "PORTOPTS=-Dprotege.rmi.server.port=5200 -Dprotege.rmi.registry.port=5100" and there was an interesting change in that the startup server startup window closed very quickly after starting. However, if I eliminated the -Dprotege.rmi.registry.port=5100 portion, it started up fine but still with no client connections.

Maybe this hints at an issue. Does the Protege 3.5 client default to 5200 and 5100?

Thanks!

Bill
bvasu
Posts: 7
Joined: 12 Feb 2020, 23:41

Hi Jonathan,

The Listening Ports section of resmon.exe in the Windows Server 2016 shows:

Image PID Address Port Protocol Firewall Status
rmiregistry.exe 5168 IPv6 unspecified 1099 TCP Allowed, not restricted
rmiregistry.exe 5168 IPv4 unspecified 1099 TCP Allowed, not restricted
vmms.exe 1888 IPv6 unspecified 2179 TCP Allowed, restricted
vmms.exe 1888 IPv4 unspecified 2179 TCP Allowed, restricted
mysqld.exe 2264 IPv6 unspecified 3306 TCP Allowed, not restricted
mysqld.exe 2264 IPv4 unspecified 3306 TCP Allowed, not restricted
svchost.exe (termsvcs) 920 IPv6 unspecified 3389 TCP Allowed, restricted
svchost.exe (termsvcs) 920 IPv4 unspecified 3389 TCP Allowed, restricted
svchost.exe (termsvcs) 920 IPv6 unspecified 3389 UDP Allowed, restricted
svchost.exe (termsvcs) 920 IPv4 unspecified 3389 UDP Allowed, restricted
svchost.exe (netsvcs) 692 IPv6 unspecified 4500 UDP Not allowed, not restricted
svchost.exe (netsvcs) 692 IPv4 unspecified 4500 UDP Not allowed, not restricted
svchost.exe (LocalService) 668 IPv4 unspecified 5050 UDP Not allowed, not restricted
java.exe 7816 IPv6 unspecified 5200 TCP Allowed, not restricted
java.exe 7816 IPv4 unspecified 5200 TCP Allowed, not restricted

This is with the set "PORTOPTS=-Dprotege.rmi.server.port=5200" line in the server startup bat file.

As I mentioned, if I use the set "PORTOPTS=-Dprotege.rmi.server.port=5200 -Dprotege.rmi.registry.port=5100" line in the server startup bat file then the server window quicky crashes.

Thanks!

Bill
bvasu
Posts: 7
Joined: 12 Feb 2020, 23:41

Jonathan,

Finally this is the log when I use both port settings and the server windows quickly crashes:
2020.06.11 14:10:03.970 PDT INFO: *** SYSTEM START *** -- Server.startServer()
2020.06.11 14:10:03.984 PDT INFO: Protege server is starting... -- Server.startServer()
2020.06.11 14:10:03.985 PDT CONFIG: Protege 3.5 Build 663, JVM 1.8.0_241-b07, memory=1908M, Windows Server 2016, encoding=UTF-8, language=en, country=US -- SystemUtilities.logSystemInfo()
2020.06.11 14:10:05.182 PDT WARNING: Is the registry running? -- java.rmi.ConnectException: Connection refused to host: 192.119.91.235; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.list(Unknown Source)
at edu.stanford.smi.protege.server.Server.checkRegistry(Unknown Source)
at edu.stanford.smi.protege.server.Server.startServer(Unknown Source)
at edu.stanford.smi.protege.server.Server.main(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
... 8 more

2020.06.11 14:10:05.187 PDT SEVERE: server startup failed -- java.io.IOException: Could not connect to the rmi registry task
at edu.stanford.smi.protege.server.Server.checkRegistry(Unknown Source)
at edu.stanford.smi.protege.server.Server.startServer(Unknown Source)
at edu.stanford.smi.protege.server.Server.main(Unknown Source)
Post Reply