for answer my own question
orb.destory is the key
get it cleared up, if you can not
make connection! and keep retry
while (poa == null) {
try {
orb = org.omg.CORBA.ORB.init(args, props);
org.omg.CORBA.Object rootPOA = orb.resolve_initial_references("RootPOA");
poa = org.omg.PortableServer.POAHelper.narrow(rootPOA);
} catch (RuntimeException re) {
orb.destroy();
re.printStackTrace();
retry_counter++;
poa = null;
if (retry_counter == NUMBER_OF_ROOT_POA_CREATION_RETRY_BEFORE_LOG_ERROR) {
LoggingUtil.loggerErrorCall(logger, (long) 1, "createRootPOA", "(
String[] args, Properties props)", false, "CDB is unable to create CORBA Server on port : " + App_Configuration.getString("cdbPortNumber"), new Class[]{});
} else if (retry_counter > NUMBER_OF_ROOT_POA_CREATION_RETRY_BEFORE_LOG_ERROR) {
LoggingUtil.loggerInternalDebugCall(logger, (long) 1, "bindNamingService", "()", false, re, true, "CDB is unable to create CORBA Server on port : " + App_Configuration.getString("cdbPortNumber") + "will retry in the next " + this.LOCAL_ROOT_POA_CREATION_RETRY_INTERVEL + "seconds", new Class[]{String.class});
}
this.waitToCurrentThread(LOCAL_ROOT_POA_CREATION_RETRY_INTERVEL * 1000);
}
}