본문 바로가기

Back-End/JEUS

Jeus Boot Binding Exception

domain.xml을 올바르게 설정함에도 불구하고 내가 설정하지 않은 169.254.*.* 형식의 host ip address로 Domain Admin Server가 세팅되는 신기한 현상을 경험해 본 사람이 있을 것이다.

 

==========================================================
This license is not appropriate for product runtime mode. Replace the license with an appropriate one.
[2020.02.28 13:28:40][2] [launcher-1] [Launcher-0012] Starting the server [adminServer] with the command
 /usr/lib/jvm/java-8-openjdk-amd64/jre/../bin/java -DadminServer -Xmx256m -XX:MaxPermSize=128m -server -Xbootclasspath/p:/home/po7dev/jeus8/lib/system/extension.jar -classpath /home/po7dev/jeus8/lib/system/bootstrap.jar -Djava.security.policy=/home/po7dev/jeus8/domains/domain1/config/security/policy -Djava.library.path=/home/po7dev/jeus8/lib/system -Djava.endorsed.dirs=/home/po7dev/jeus8/lib/endorsed -Djeus.properties.replicate=jeus,sun.rmi,java.util,java.net -Djeus.jvm.version=hotspot -Djava.util.logging.config.file=/home/po7dev/jeus8/bin/logging.properties -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.util.logging.manager=jeus.util.logging.JeusLogManager -Djeus.home=/home/po7dev/jeus8 -Djava.net.preferIPv4Stack=true -Djeus.tm.checkReg=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Djeus.domain.name=domain1 -Djava.naming.factory.initial=jeus.jndi.JNSContextFactory -Djava.naming.factory.url.pkgs=jeus.jndi.jns.url -Djeus.server.protectmode=false -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=/home/po7dev/jeus8/domains/domain1/servers/adminServer/logs/jvm.log jeus.server.admin.DomainAdminServerBootstrapper -u jeus -domain domain1 -server adminServer .
[2020.02.28 13:28:40][2] [launcher-1] [Launcher-0014] The server[adminServer] is being started ...
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
[2020.02.28 13:28:43][2] [adminServer-1] [SERVER-0248] The JEUS server is STARTING.
[2020.02.28 13:28:43][0] [adminServer-1] [SERVER-0000] Version information - JEUS 8 Fix#1 (8.0.0.1-b162106).
[2020.02.28 13:28:43][0] [adminServer-1] [SERVER-0001] java.specification.version=[1.8], java.runtime.version=[1.8.0_242-8u242-b08-0ubuntu3~18.04-b08], vendor=[Private Build]
[2020.02.28 13:28:43][2] [adminServer-1] [SERVER-0002] Domain=[domain1], Server=[adminServer], baseport=[9736], pid=[141]
[2020.02.28 13:28:43][2] [adminServer-1] [SERVER-0004] The current system time zone : Korea Standard Time
[2020.02.28 13:28:43][2] [adminServer-1] [SERVER-0571] All JEUS system properties have been confirmed.
[2020.02.28 13:28:43][2] [adminServer-1] [SERVER-0568] Service address='0.0.0.0:9736', hostname='169.254.211.88', representation ip='169.254.211.88'
[2020.02.28 13:28:43][2] [adminServer-1] [SERVER-0561] The default RMI export port = 9743 and bind address = 169.254.211.88/169.254.211.88.
[2020.02.28 13:28:43][2] [adminServer-1] [NET-0002] Beginning to listen to NonBlockingChannelAcceptor: 0.0.0.0:9736.
[2020.02.28 13:28:43][2] [adminServer-1] [SCF-0110] Hybrid Multicast Transport has been successfully initialized.
[2020.02.28 13:28:43][2] [adminServer-1] [SCF-0001] System Clustering Framework has been successfully initialized.
[2020.02.28 13:28:43][2] [adminServer-1] [JNSS-0009] The JNDI naming server has been successfully initialized.
[2020.02.28 13:28:43][2] [adminServer-1] [JNDI.Local-0001] Starting JNDI Local Client...
[2020.02.28 13:28:43][2] [adminServer-1] [JMXR-0138] JMXConnector service URL : service:jmx:jmxmp://0.0.0.0:9736/JeusMBeanServer
[2020.02.28 13:28:43][2] [adminServer-1] [JMXR-0138] JMXConnector service URL : service:jmx:jmxmp://0.0.0.0:9736/JEUSMP_adminServer
[2020.02.28 13:28:43][2] [adminServer-1] [JMX-0051] JMXConnector started with the JNDI name [mgmt/rmbs/adminServer].
[2020.02.28 13:28:43][1] [adminServer-1] [EJB-9101] An exception occurred while creating the server socket for the port [9743] and the backlog [1024].
<<__Exception__>>
java.net.BindException: Cannot assign requested address (Bind failed)
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:390)
        at jeus.ejb.util.EJBRMISocketFactory.createServerSocket(EJBRMISocketFactory.java:106)
        at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:670)
        at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:335)
        at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:254)
        at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:412)
        at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147)
        at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:237)
        at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:383)
        at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:320)
        at jeus.schedule.JEUSSchedulerService.export(JEUSSchedulerService.java:129)
        at jeus.schedule.JEUSSchedulerService.startService(JEUSSchedulerService.java:69)
        at jeus.schedule.JEUSSchedulerService.startServerSchedulerService(JEUSSchedulerService.java:49)
        at jeus.server.service.SchedulerService.startService(SchedulerService.java:54)
        at jeus.server.Server.startJeusService(Server.java:1862)
        at jeus.server.Server.startJeusServicesOnBoot(Server.java:1906)
        at jeus.server.Server.start(Server.java:675)
        at jeus.server.Server.mainMethod(Server.java:435)
        at jeus.server.admin.DomainAdminServer.main(DomainAdminServer.java:44)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at jeus.server.Bootstrapper.callMainMethod(Bootstrapper.java:596)
        at jeus.server.Bootstrapper.callMain(Bootstrapper.java:603)
        at jeus.server.Bootstrapper.main(Bootstrapper.java:148)
        at jeus.server.admin.DomainAdminServerBootstrapper.main(DomainAdminServerBootstrapper.java:18)
<<__!Exception__>>
[2020.02.28 13:28:43][0] [adminServer-1] [SERVER-0245] Starting the JEUS service[jeus.server.service.SchedulerService] failed.
[2020.02.28 13:28:43][2] [adminServer-1] [RMC-1000] ReliableMulticastServer for address 224.0.0.1, port 12488 has been started.
[2020.02.28 13:28:43][2] [adminServer-1] [SCF-0200] SCF Leader state has been changed from 'UNKNOWN' to 'ELECTING'.
[2020.02.28 13:28:43][2] [adminServer-1] [JMS-7374] The persistence store manager for the JMS server 'adminServer' has been started.
[2020.02.28 13:28:44][2] [adminServer-1] [JMS-6843] Adding a destination: type=81, name=JEUSMQ_DLQ, export name=JEUSMQ_DLQ.
[2020.02.28 13:28:44][2] [adminServer-1] [JMS-6822] The JMS engine with the server named adminServer has started.
[2020.02.28 13:28:44][2] [adminServer-1] [EJB-5501] EJB engine started successfully.
[2020.02.28 13:28:44][2] [adminServer-1] [WEB-1003] Socket send buffer size of this operating system = [262144], JEUS default output buffer size = [16384]
[2020.02.28 13:28:44][2] [adminServer-1] [WEB-1030] The web engine has started successfully.
[2020.02.28 13:28:44][2] [adminServer-1] [Deploy-0095] Distributing the application[webadmin].
[2020.02.28 13:28:45][2] [adminServer-1] [WEB-3049] The JSP service has been disabled for the web application[webadmin].[2020.02.28 13:28:45][2] [adminServer-1] [WEB-3857] 
- session descriptor -
    - timeout           : 30(min)
    - max session count : -1
    - shared            : false
    - reload-persistent : false
- session tracking mode -
    - Cookie     : true
    - URL Rewrite: false
    - SSL        : false

- session cookie config -
    - cookie-name : JSESSIONID
    - version         : 0
    - domain          : null
    - path            : null
    - max-age         : -1 (browser-lifetime)
    - secure          : false
    - http-only       : true
    - same-site       : None

[2020.02.28 13:28:45][2] [adminServer-1] [WEB-1032] Distributed the web context [webadmin] information
- Virtual host    : DEFAULT_HOST
- Context path    : /webadmin

 

이 IP가 어디서 왔을까 찾아본 결과 내가 사용하지 않는 Network virtaul interface에서 할당된 것이었다.

내가 제우스를 WSL에 설치했고 WSL은 이더넷을 윈도우에서 설정한 환경을 그대로 사용하기 때문에

/etc/에서 아무리 네트워크 환경정보를 확인해봐도 문제를 못찾았던 것이었다.

결국 eth2를 삭제하니 깔끔하게 해결되었다.

 

제우스 바인딩 로직에서도 현재 사용하고 있는 이더넷을 bind 하는 예외처리가 필요해 보인다.