Endevor B4G: java.net.SocketException: EDC5111I Permission denied
search cancel

Endevor B4G: java.net.SocketException: EDC5111I Permission denied

book

Article ID: 281031

calendar_today

Updated On:

Products

Endevor

Issue/Introduction

Endevor Bridge for Git failed to start, and found the following error:

org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is o
amework.boot.web.server.WebServerException: Unable to start embedded Tomcat server

...

Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1042)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:232)
    ... 25 common frames omitted
Caused by: java.net.SocketException: EDC5111I Permission denied.
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:460)
    at sun.nio.ch.Net.bind(Net.java:452)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:253)
    at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:276)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:231)
    at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1332)
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1418)
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:665)
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1039)

Environment

Endevor V19

Bridge for Git  2.14.3

Cause

There are multiple TCP/IP stacks on this Lpar, due to TCPIP restrictions, the embedded Tomcat of Endevor Bridge for Git application can only bind to one stack.

Resolution

Set the stack affinity to point to a specific stack, that is to add the following as the first step in B4G startup JCL

//STEP1 EXEC PGM=BPXTCAFF,PARM=IPSTACK
Where IPSTACK is the name of the IBM TCPIP stack 

 

Here is the sample JCL to start B4G (allow Tomcat to bind with a specific STACK) 

//JVMPRC86 PROC JAVACLS=,                < Fully Qfied Java class..RQD  
//   ARGS=,                              < Args to Java class          
//   VERSION='86',                       < JVMLDM version: 86          
//   LOGLVL='',                          < Debug LVL: +I(info) +T(trc)  
//   REGSIZE='0M',                       < EXECUTION REGION SIZE        
//   LEPARM=''                                                          
//STEP1 EXEC PGM=BPXTCAFF,PARM=IPSTACK
//JAVAJVM  EXEC PGM=JVMLDM&VERSION,REGION=&REGSIZE,                    
//   PARM='&LEPARM/&LOGLVL &JAVACLS &ARGS'   
//SYSPRINT DD SYSOUT=*          < System stdout                        
//SYSOUT   DD SYSOUT=*          < System stderr                        
//STDOUT   DD SYSOUT=*          < Java System.out                      
//STDERR   DD SYSOUT=*          < Java System.err                      
//CEEDUMP  DD SYSOUT=*                                                  
//CEEOPTS DD *                                                          
TRAP(ON,NOSPIE)                                                        
/*                                                                      
//ABNLIGNR DD DUMMY                                                    
// PEND                                                                
//********************************************************************  
//* End Custom JVM procedure                                         *  
//********************************************************************  
//*                                                                    
//JAVA EXEC PROC=JVMPRC86,                                              
// PARM='+T'                                                            
//STDENV DD *                                                          
export PWD=<USS directory where BridgeForGit is placed>                                               
export JAVA_HOME=/usr/lpp/java/J8.0_64                                  
CLASSPATH=$PWD/*                                                    
export CLASSPATH=$CLASSPATH                                            
LIBPATH=/lib:/usr/lib:$JAVA_HOME/bin                                    
LIBPATH=$LIBPATH:$JAVA_HOME/lib/s390x                                  
LIBPATH=$LIBPATH:$JAVA_HOME/lib/s390x/j9vm                              
LIBPATH=$LIBPATH:$JAVA_HOME/bin/classic                                
LIBPATH=$LIBPATH:$PWD                                                  
export LIBPATH=$LIBPATH                                                
IJO="-Xms256m -Xmx2048m -Xquickstart"                                    
IJO="$IJO -Dfile.encoding=UTF-8"                   
export IBM_JAVA_OPTIONS="${IJO}"                                        
export PATH=$PATH:$JAVA_HOME:$LIBPATH                                  
/*                                                                      
//MAINARGS DD *                                                      
-jar BridgeForGit-<version>.jar                            
//*                                                                  
//STDOUT   DD SYSOUT=*                                                
//STDERR   DD SYSOUT=*                                                
//SYSUDUMP DD SYSOUT=*