views:

5064

answers:

4

Hello,

I'm getting the following error when I try to start JBoss

10:10:43,298 INFO  [WebService] Using RMI server codebase: http://127.0.0.1:8083/
10:10:43,938 ERROR [AbstractKernelController] Error installing to Start: name=jboss:service=Naming state=Create mode=Manual requiredState=Installed
java.rmi.server.ExportException: Port already in use: 1098; nested exception is: 
    java.net.BindException: Address already in use: JVM_Bind
    at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:249)
    at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:184)
    at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:382)
    at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:116)
    at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:180)
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:293)
    at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:256)

However When I try to see what ports are being listened to. I don't see that port!

H:\>netstat -a -n -o

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       824
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1521           0.0.0.0:0              LISTENING       2036
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       752
  TCP    0.0.0.0:7717           0.0.0.0:0              LISTENING       2944
  TCP    0.0.0.0:8081           0.0.0.0:0              LISTENING       1564
  TCP    0.0.0.0:31038          0.0.0.0:0              LISTENING       1436
  TCP    127.0.0.1:1038         0.0.0.0:0              LISTENING       2036
  TCP    127.0.0.1:1052         0.0.0.0:0              LISTENING       2620
  TCP    127.0.0.1:5998         127.0.0.1:5999         ESTABLISHED     4036
  TCP    127.0.0.1:5999         127.0.0.1:5998         ESTABLISHED     4036
  TCP    127.0.0.1:6000         127.0.0.1:6001         ESTABLISHED     4036
  TCP    127.0.0.1:6001         127.0.0.1:6000         ESTABLISHED     4036
  TCP    142.174.27.74:139      0.0.0.0:0              LISTENING       4
  TCP    142.174.27.74:13148    142.174.12.84:445      ESTABLISHED     4
  TCP    142.174.27.74:13253    142.174.134.33:8080    ESTABLISHED     4036
  TCP    142.174.27.74:13255    142.174.134.33:8080    ESTABLISHED     4036
  TCP    142.174.27.74:13258    142.174.134.33:8080    ESTABLISHED     4036
  TCP    142.174.27.74:13259    142.174.134.33:8080    ESTABLISHED     4036
  TCP    142.174.27.74:13260    142.174.134.33:8080    ESTABLISHED     4036
  TCP    142.174.27.74:13261    142.174.134.33:8080    ESTABLISHED     4036
  TCP    142.174.27.74:13262    142.174.134.33:8080    ESTABLISHED     4036
  TCP    142.174.27.74:13263    142.174.134.33:8080    ESTABLISHED     4036
  UDP    0.0.0.0:445            *:*                                    4
  UDP    0.0.0.0:8081           *:*                                    1564
  UDP    0.0.0.0:8082           *:*                                    1564
  UDP    0.0.0.0:19508          *:*                                    1244
  UDP    127.0.0.1:123          *:*                                    948
  UDP    127.0.0.1:1025         *:*                                    580
  UDP    127.0.0.1:1046         *:*                                    524
  UDP    127.0.0.1:1056         *:*                                    784
  UDP    127.0.0.1:1213         *:*                                    2888
  UDP    127.0.0.1:1257         *:*                                    2404
  UDP    127.0.0.1:2172         *:*                                    3736
  UDP    127.0.0.1:2310         *:*                                    2188
  UDP    142.174.27.74:123      *:*                                    948
  UDP    142.174.27.74:137      *:*                                    4
  UDP    142.174.27.74:138      *:*                                    4

H:\>

any ideas?

Thanks,

Tam

+2  A: 

We ran into this problem some time ago as well, not just with JBoss, but also MySQL. I wrote about it in more detail here:

Windows TCP Port Conflicts above 1024

What it comes down to is that Windows uses the port range between 1000 and 5000 for so called "ephemeral" ports. This means that it assigns ports from this range for processes that request a random port.

On Windows 2000/2003 Server installations as well as on Windows XP Pro you can reserve port ranges (even if they only cover a single port) for your applications. Effectively they are not reserved for anything specific, but just excluded from the dynamic allocation. To do so, create or edit the following registry value (type REG_MULTI_SZ/Multi-String Value):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ReservedPorts

In this value specify port ranges in the format xxxx-yyyy with xxxx and yyyy being the lowest and highest port of the range to be reserved. To reserve a single port, just use the same values for both (e. g. 1099).

Daniel Schneller
+3  A: 

Try TCPView (http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx). I get this "port already in use" quite a lot, and TCPView always usually catches the culprit.

skaffman
A: 

I guess that port is still in use. You can find that using:

netstat -ao

and

netstat -b

If you can't use that port, find another port and change it in the following XML file:

conf/bindings-beans/META-INF/bindings-jboss-beans.xml

The JBoss 5 has a new ServiceBindingManager which uses bean injection to assign ports at runtime. Changing the port here may do the trick for you. You can also use a different ports configuration and override the ports by a factor.

Sam