CORBA Server not registering

Hi All,

I'm using a Corba orbix server. My server is not registering with the Orbix demon process (psit shows no server). Is there a way to find the reason for it? any diagnostic message? I tried with ORBIXDIGANOSTIC set to 2 in my application code but still it gives no information about it. I have checked my application code it does every thing correctly like setting proper server name in imp_ready, and my putit command also registers the same server name with proper binary path.

I appreciate any help for this?

  • Hi Sendil,

    Thank you for raising question.

    Orbix servers should be registered with the Orbix 3 Daemon using the "putit" command. Information on how to register a server with "putit" can be found in our knowledgebase article here:

    community.microfocus.com/.../27232.registering-servers-with-putit.aspx

    Thank you and best regards,

    Pat

    Micro Focus SupportLine

  • In reply to Pat Morrissey:

    Hi,

    Thanks for your reply. I already did putit, but when I did 'psit' it is not showing the registered server

    Please see my steps

    1. Registered the server using putit

    2. Started the server application code. Here I have Corba.._.impl_ready(<servername>, timeout)

    3. psit - not lists my registered server

    4. Corba client - when started throws "cannot communicate with server, binding failed"

  • In reply to SendilNatarajan:

    Can you paste the output from your server start-up and orbixd output here?

  • In reply to MartinMu:

    My server just says successfully back grounded

    when I give $orbixd, it gives message like

    [orbixd:Initialisation of server "IT_daemon" failed... ]

    10088-- Communication failure

     - TCP/IP Socket interface failure

              Reason: Address already in use

     [Completion status : COMPLETED_NO]

    The Corba client gives error message like

    10085-- Communication failure

     - no server at host : 10.41.248.87

     [Completion status : COMPLETED_NO]

    Binding failed:

  • The address in use error from the orbixd is most likely because it is already running. Just run pingit -h localhost from the same command prompt to verify this. The client command looks as though it is trying to connect (possibly via _bind) to a host that is not running the orbixd. Simply run pingit -h 10.41.248.87 to confirm that there is no orbixd there. Check what host the client should connect to and how it is connecting.

  • In reply to SendilNatarajan:

    This is what I exactly get while starting my server

    INFO: server successfully backgrounded.

    [orbixd:New Connection (testhost.axls.com,ServerManagerNew,*,testqa,pid=14549172,optimised) ]

    This tells me that my server was able to connect with the orbixd, but still psit shows no active servers.

    There are no active servers at node testhost.axls.com.

  • In reply to SendilNatarajan:

    Is that all the output you see? How have you configured the Orbix diagnostics? You should see something more like:

    [orbixd:New Connection (testhost.axls.com,ServerManagerNew,*,testqa,pid=14549172,optimised) ]

    [orbixd:Registering Persistent Server ServerManagerNew(pid = 14549172) ]

    [orbixd:Dynamically assigning internet port <OS assigned port> ]

    Can you restart the orbixd with the -t flag?

    Can you send on the output of lsit and catit ServerManagerNew?

  • In reply to MartinMu:

    Hi Marting,

    I really appreciate your help. Please see the complete details of what you have requested.

    I have set the orbix diag using ORBIXDIAGNOSTICS = 2

    putit command

    ------------------

    $ORBIX_BINDIR/putit ServerManagerNew /home/testqa/TEST_HOME/bin.aix6/xlc/test_orbix_server_V8.5782

    echo "== chmod of server application in orbix "

    $ORBIX_BINDIR/chmodit i+all ServerManagerNew

    $ORBIX_BINDIR/chmodit l+all ServerManagerNew

    -bash-4.2$ orbixd -t &

    [1] 21299256

    -bash-4.2$ [ 06:06:58.623 orbixd@testhost.axls.com Server "IT_daemon" is now available to the network ]

    [ Configuration TCP/1570/Orbix-XDR ]

    -bash-4.2$ pingit -h 10.41.248.87

    [[ 2411726606:07:41.550: New Connection (orbixd10.41.248.87@,testhost.axls.comIT_daemon ,New Connection (*testhost.axls.com,,testqa24117266,,pid=*21299256,,optimised) ]testqa

    ,pid=24117266,optimised) ]

    [ 06:07:41.550 orbixd@testhost.axls.com  Incoming request `_IT_PING' to object 0 of type IT_daemon ]

    [ 06:07:41.551 orbixd@testhost.axls.com  Outgoing reply to `_IT_PING' from object 0 of type IT_daemon ]

    Trying to contact 10.41.248.87 and it's running.

    [ 06:07:41.552 orbixd@testhost.axls.com End of Connection (testhost.axls.com,24117266,*,testqa,pid=24117266) ]

    -bash-4.2$ lsit

    [ 06:10:42.219 orbixd@testhost.axls.com New Connection (testhost.axls.com,5963956,*,testqa,pid=5963956,optimised) ]

    [5963956:New Connection (testhost.axls.com,IT_daemon,*,testqa,pid=21299256,optimised) ]

    [ 06:10:42.220 orbixd@testhost.axls.com  Incoming request `_IT_PING' to object 0 of type IT_daemon ]

    [ 06:10:42.221 orbixd@testhost.axls.com  Outgoing reply to `_IT_PING' from object 0 of type IT_daemon ]

    Root directory

    [ 06:10:42.221 orbixd@testhost.axls.com  Incoming request `listServers' to object 0 of type IT_daemon ]

    [ 06:10:42.222 orbixd@testhost.axls.com  Outgoing reply to `listServers' from object 0 of type IT_daemon ]

       ServerManagerNew

    [ 06:10:42.224 orbixd@testhost.axls.com End of Connection (testhost.axls.com,5963956,*,testqa,pid=5963956) ]

    Server details for server  : ServerManagerNew

      Comms           : tcp

      Code            : cdr

      Activation      : shared

      Owner           : testqa

      Launch          : ;all;

      Invoke          : ;all;

         Marker         Launch Command

         *              /home/testqa/TEST_HOME/bin.aix6/xlc/test_orbix_server_V8.5782

    Server Output After Starting

    -------------------------------

    INFO: server successfully backgrounded.

    [ 06:16:18.586 orbixd@testhost.axls.com New Connection (testhost.axls.com,ServerManagerNew,*,testqa,pid=5963830,optimised) ]

    -bash-4.2$ psit

    [ 06:18:02.570 orbixd@testhost.axls.com New Connection (testhost.axls.com,21823712,*,testqa,pid=21823712,optimised) ]

    [21823712:New Connection (testhost.axls.com,IT_daemon,*,testqa,pid=21299256,optimised) ]

    [ 06:18:02.571 orbixd@testhost.axls.com  Incoming request `_IT_PING' to object 0 of type IT_daemon ]

    [ 06:18:02.571 orbixd@testhost.axls.com  Outgoing reply to `_IT_PING' from object 0 of type IT_daemon ]

    [ 06:18:02.572 orbixd@testhost.axls.com  Incoming request `listActiveServers' to object 0 of type IT_daemon ]

    [ 06:18:02.572 orbixd@testhost.axls.com  Outgoing reply to `listActiveServers' from object 0 of type IT_daemon ]

    There are no active servers at node testhost.axls.com.

    [ 06:18:02.574 orbixd@testhost.axls.com End of Connection (testhost.axls.com,21823712,*,testqa,pid=21823712) ]

  • In reply to SendilNatarajan:

    This is a little strange. It looks like your server is connecting, but not registering for some reason. Does the server continue to run after the connection message? The output you show is from the orbixd after starting and not from the server. What output do you see in your server? What platform are you on? Could you get a pstack or any stack trace from the server?

    You say you are ORBIXDIAGNOSTICS, not this is not an Orbix environment variable, but possibly your code is passing this to the setDiagnostics on the Orbix ORB.

  • In reply to MartinMu:

    1. Yes, the server is running (actually after executing the impl_ready it goes in a wait mode listening for client requests).

    2. The only output from my server after setting the diag by setDiagnostics(2) is "server is backgrounded successfully"

    3. There is not stack trace, and as I said earlier it waits in impl_ready for client requests.

  • In reply to SendilNatarajan:

    What do you mean by there is not a stack trace? Can you generate one?

    Try setDiagnostics(3) and please paste the full server output here. We have only seen the orbixd output when you run the server in all previous posts.

  • In reply to MartinMu:

    Hi,

    After some break, I tried this one again and got the stack trace. I think the orbix server is stuck with some lock while initializing and I don't know the reason. I'll put the stack trace below.

    0x09000000008a6838  global_lock_ppc_mp_eh() + 0x24

    0x0900000000888f5c  _mutex_lock(??, ??, ??) + 0x23c

    0x0900000001c88034  IT_PODMutex_i::lock(IT_ExceptionHandler&)() + 0x34

    0x0900000001c87fd0  IT_Mutex::lock(IT_ExceptionHandler&)() + 0x10

    0x0900000001d57fb4  IT_SelectWaker::send()() + 0x60

    0x0900000001d50008  IT_NetworkThreads::checkout(GEN_SOCKET,IT_NetworkThreads::Ability)() + 0x2b8

    0x0900000001d502ec  IT_NetworkThreads::checkout_all(GEN_SOCKET)() + 0x138

    0x0900000001d5c00c  EventHandler::deregister_fd_from_network_threads(GEN_SOCKET)() + 0x5c

    0x0900000001d5c454  EventHandler::unregisterFD(GEN_SOCKET)() + 0x14

    0x0900000001c9c458  OrbixProtocol::exchangeChannelConnectionMessage(IT_RefCountedPtr<IT_Channel>,unsigned char,const char*,unsigned int)() + 0x530

    0x0900000001c9c64c  OrbixProtocol::ConnectClientChannel(const char*,const char*,const char*,const char*,const char*,unsigned int,IT_RefCountedPtr<IT_Channel>)() + 0x14c

    0x0900000001d69260  ChannelTable::open_channel_for_a_profile(CORBA::Object*,ObjectReferenceImpl*,const char*,const char*,const char*,const char*,const char*,unsigned char&,CORBA::SystemException*&,CORBA::Environment&)() + 0x2cc

    0x0900000001d68bb8  ChannelTable::open_channel_for_ior(CORBA::Object*,ObjectReferenceImpl*,IT_Profile_Iterator*,const char*,unsigned char&,CORBA::SystemException*&,CORBA::Environment&)() + 0x198

    0x0900000001d686a4  ChannelTable::find_and_open_channel(CORBA::Object*,const char*,CORBA::SystemException*&,unsigned char&,CORBA::Environment&)() + 0x218

    0x0900000001d689fc  ChannelTable::openChannel(CORBA::Request&,CORBA::SystemException*&,unsigned char&,CORBA::Environment&)() + 0x68

    0x0900000001d8b110  mtChannelTable::openChannel(CORBA::Request&,CORBA::SystemException*&,unsigned char&,CORBA::Environment&)() + 0xc

    0x0900000001c6349c  IT_ObjectImpl::openChannel(CORBA::Request&,CORBA::SystemException*&,unsigned char&,CORBA::Environment&)() + 0x1b8

    0x0900000001d3e098  FRFInterface::initialiseRequest(CORBA::Request&,CORBA::Environment&)() + 0xb0

    0x0900000001caa144  IT_RequestImpl::initialiseBuffer(CORBA::Environment&)() + 0x74

    0x0900000001caa9f8  IT_RequestImpl::IT_RequestImpl(CORBA::Request*,CORBA::Object*,const char*,CORBA::Environment&,unsigned char,unsigned char)() + 0x130

    0x0900000001ca4da0  CORBA::Request::Request(CORBA::Object*,const char*,CORBA::Environment&,unsigned char,unsigned char)() + 0xbc

    0x0900000001c9d50c  OrbixProtocol::locateObject(CORBA::Object*,char*&,CORBA::Environment&)() + 0x88

    0x0900000001c63934  IT_ObjectImpl::_IT_PING(CORBA::Environment&)() + 0x140

    0x0900000001cfcfec  CORBA::Object::_IT_PING(CORBA::Environment&)() + 0x10

    0x0900000001cd36f8  IT_FactoryTableImpl::bind(const char*,const char*,const char*,const char*,CORBA::Object*&,const CORBA::Context&,CORBA::Environment&)() + 0x2ec

    0x0900000001cd30fc  IT_FactoryTableImpl::NewWithObject(const char*,CORBA::Environment&,const CORBA::Context&,CORBA::Object*&,const char*,const char*,const char*)() + 0x258

    0x0900000001cd2cdc  IT_FactoryTableImpl::New(const char*,CORBA::Environment&,const CORBA::Context&,const char*,const char*,const char*)() + 0x4c0

    0x0900000001d355a4  CORBA::FactoryTable::New(const char*,CORBA::Environment&,const CORBA::Context&,const char*,const char*,const char*)() + 0x10

    0x0900000001c46a08  IT_daemon::_bind(const char*,const char*,const CORBA::Context&,CORBA::Environment&)() + 0x30

    0x0900000001c46a90  IT_daemon::_bind(const char*,const char*,CORBA::Environment&)() + 0x60

    0x0900000001d6b31c  DaemonManager::bind_to_daemon(const char*,CORBA::Environment&)() + 0x168

    0x0900000001d6b958  DaemonManager::registerPersistentServer(const char*,char*&,char*&,unsigned int&,CORBA::Environment&)() + 0x5c

    0x0900000001d45d38  FRRInterface::ImplIsReady(const char*,unsigned char&,CORBA::Environment&)() + 0x57c

    0x0900000001d43ce4  IT_BOAImpl::impl_is_ready(CORBA::ImplementationDef_ptr,unsigned int,CORBA::Environment&)() + 0x244

    0x0900000001d427dc  CORBA::BOA::impl_is_ready(CORBA::ImplementationDef_ptr,unsigned int,CORBA::Environment&)() + 0x18

    0x000000010265d3f8  dsrv::orbix::CorbaOrbixServer::initServer(const u::DsrvCorbaConfig&)(??, ??) + 0x9b8

    0x000000010265ff1c  dsrv::orbix::OrbixServerManager::startServer(const u::DsrvCorbaConfig&)(??, ??) + 0xbc

    0x0000000100074a28  dsrv::DispatchServer::startCorbaServer(port::smart_ptr<dsrv::common::ICorbaServerManager,port::smart_ptr_traits<dsrv::common::ICorbaServerManager> >&)(??, ??) + 0x2e8

    0x000000010001bf30  main_init(int,char**,port::smart_ptr<dsrv::common::ICorbaServerManager,port::smart_ptr_traits<dsrv::common::ICorbaServerManager> >&)(??, ??, ??) + 0x550

    0x000000010002244c  main0(int,char**,port::smart_ptr<dsrv::common::ICorbaServerManager,port::smart_ptr_traits<dsrv::common::ICorbaServerManager> >&)(??, ??, ??) + 0x2c

    0x0000000100000b80  main(??, ??) + 0xe0

    0x00000001000002f8  __start() + 0x70

  • In reply to SendilNatarajan:

    Thank you for the stack trace. It appears the server did attempt to contact the daemon, but may have encountered an exception.

    Please try increasing the server's diagnostic level ("setDiagnostics(3)") and paste the full server output here.

  • In reply to SendilNatarajan:

    In addition the high-diagnostic server output, please also provide your configuration files, found in the directory:

    <ORBIX_HOME>/config/

    The stack trace you provided shows a single thread. Is this the complete stack trace for this server? If not, please provide the trace information from the other threads.

    As a quick test, you may try configuring the daemon to use IIOP, rather than the default Orbix protocol. This can be set by adding the following line to the common.cfg configuration file:

     IT_DAEMON_PROTOCOL = "IIOP";

    Finally, please confirm the exact versions of Orbix, Java and the underlying OS you are using.

    Thank you and best regards,

    Pat

    Micro Focus SupportLine

  • In reply to Pat Morrissey:

    Please see the requested info below. I have set with diag level 3(in orb->setDiagnostics(3)) but still no additional message generated in the output file and the same problem exists as it is.

    after setting the IIOP, starting orbix demon process outputs:

    [ Configuration TCP/1570/Orbix-XDR ]

    iona.cfg

    ----------

    cfg_dir = "/disk3/progress/config/";

    include cfg_dir + "common.cfg";

    include cfg_dir + "orbix3.cfg";

    include cfg_dir + "orbixnames3.cfg";

    include cfg_dir + "orbixweb3.cfg";

    include cfg_dir + "orbixssl.cfg";

    common.cfg

    ---------------

    Common

    {

       #the port number for the Orbix daemon:

       IT_DAEMON_PORT = "1570";

       #the starting port number for daemon-run servers:

       IT_DAEMON_SERVER_BASE = "2590";

       #the full path name of the Implementation Repository _directory_:

       IT_IMP_REP_PATH = cfg_dir + "Repositories/ImpRep";

       #the full path name of the Interface Repository _directory_:

       IT_INT_REP_PATH = cfg_dir + "Repositories/IFR";

       #the full path name of the _directory_ holding the locator files:

       IT_LOCATOR_PATH = cfg_dir;

       #the local DNS domain name:

       IT_LOCAL_DOMAIN = "amat.com";

       #the path to java class files

       IT_DEFAULT_CLASSPATH = cfg_dir +":/disk3/progress/lib/OrbixNames.jar:/disk3/progress/lib/OrbixSSL.jar:/disk3/progress/lib/OrbixWeb.jar

    :/disk3/progress/lib/monitoring.jar:/disk3/progress/lib/actional-sdk.jar:/disk3/progress/demos/classes/:";

       #the Java interpreter

       IT_JAVA_INTERPRETER = "/usr/java6/jre/bin/java";

           #Number of ports to use

           #IT_DAEMON_SERVER_RANGE = "1000";

    IT_DAEMON_PROTOCOL = "IIOP";

    };

    orbix3.cfg

    -----------

    #the full path name of the error messages _file_:

    Orbix.IT_ERRORS = cfg_dir + "ErrorMsgs";

    Orbix.IT_CONNECT_ATTEMPTS = "10";

    #Orbix.IT_ORB_INITIALISORS = "it_monitoring";

    #Orbix.IT_LOGGING_FILTERS = "monitoring";

    Orbix Version

    ---------------

    Orbix 3.3

    Orbix C++ Daemon version 3.3 Service Pack 11

    for XL C/C++ Enterprise Edition V8.0 for AIX Compiler

    Implementation Repository Path    :/disk3/progress/config/Repositories/ImpRep

    Daemon Port                       :1570

    Daemon Port Base                  :2590

    Daemon Port Range                 :50

    Orbix Errors File                 :/disk3/progress/config/ErrorMsgs

    Orbix Locator Path                :/disk3/progress/config/

    Interface Repository Path         :/disk3/progress/config/Repositories/IFR

    Local Host                        :testhost.amat.com

    Local Domain                      :amat.com

    Java Interpreter                  :/usr/java6/jre/bin/java

    Default Classpath                 :/disk3/progress/config/:/disk3/progress/lib/OrbixNames.jar:/disk3/progress/lib/OrbixSSL.jar:/disk3/progress/lib/OrbixWeb.jar:/disk3/progress/lib/monitoring.jar:/disk3/progress/lib/actional-sdk.jar:/disk3/progress/demos/classes/:

    The exact OS/platform:

    AIX testhost 1 6 00F738204C00