Wednesday, 2 June 2021

Another Day another upgrade - msgType=916

 Working with another great JDE upgrade.

Part of what I like to do is look through the logs on a nightly basis and see if anything strange occurred.  I have a couple of stories from the trenches on this.

Firstly, some logs 

057         Wed Jun  2 09:35:11.080962         ipcmisc.c348

IPC3700004 - sendMessage timed out, idx=246, errno=4.

3057       Wed Jun  2 09:35:11.081207         extmsgq.c1194

Could not pass message to jdenet_k kernel queue=<Krnl18952ReqQ> (lastIPCError=<eIPCTimedOut>),Message aborted for msgType=924.

3057       Wed Jun  2 09:35:11.081261         extmsgq.c1271

NET2000002:  Could not pass message to jdenet_k kernel queue=<Krnl18952ReqQ> (lastIPCError=<eIPCTimedOut>),  Message aborted, type=924

 

Wed Jun  2 10:01:38.787813         extmsgq.c1271

NET2000002:  Could not pass message to jdenet_k kernel queue=<Krnl18952ReqQ> (lastIPCError=<eIPCTimedOut>),  Message aborted, type=924

2981       Wed Jun  2 13:08:03.750311         ipcmisc.c348

IPC3700004 - sendMessage timed out, idx=246, errno=4.

2981       Wed Jun  2 13:08:03.750469         extmsgq.c1194

Could not pass message to jdenet_k kernel queue=<Krnl18952ReqQ> (lastIPCError=<eIPCTimedOut>),Message aborted for msgType=924.

2981       Wed Jun  2 13:08:03.750520         extmsgq.c1271

 

2614       Wed Jun  2 02:17:35.323798         ipcmisc.c348

IPC3700004 - sendMessage timed out, idx=246, errno=4.

2614       Wed Jun  2 02:17:35.323955         extmsgq.c1194

Could not pass message to jdenet_k kernel queue=<Krnl18952ReqQ> (lastIPCError=<eIPCTimedOut>),Message aborted for msgType=916.

2614       Wed Jun  2 02:17:35.324004         extmsgq.c1271

NET2000002:  Could not pass message to jdenet_k kernel queue=<Krnl18952ReqQ> (lastIPCError=<eIPCTimedOut>),  Message aborted, type=916

2614       Wed Jun  2 02:17:35.324045         saw_mon.c1100

jdeSawImpGetKernelUserListV3:Error:JDENET_SendMsg:le_net_error 12:<JDEVPAPP02>,<6017>,18952,5

The important thing about logs like this is the msgType, because this tells you the type of message being dropped.  Let's be honest, if it's serverManager related stats, we do not care!

opening msgtpye.h in netmessaging dir from system/include on the server, shows me the message that this is occurring for.  But you also need to look at the kernel.

You do not need to be a programmer to work out the moderate description from the comments in the code.


typedef enum tagJDENETCallObjectMsgType {
   JDEMSGCALLOBJ = CALLOBJECT_RANGE_START,
   JDEMSGINITREMOTEUSER,     /* 902 */
   JDEMSGFREEREMOTEUSER,     /* 903 */
   JDEMSGINITREMOTEENV,      /* 904 */
   JDEMSGFREEREMOTEENV,      /* 905 */
   JDEMSGGETSZUSERLIST,      /* 906 */
   JDEMSGCUSTOMRUN,          /* 907 */
   JDEMSGCUSTOMLOAD,         /* 908 */
   JDEMSGCUSTOMUNLOAD,       /* 909 */
   JDEMSGNOTUSED,            /* 910 */ /* Previously JDEMSGTAMSEND */
   JDEMSGREFRESHCACHE,       /* 911 */
   JDEMSGREFRESHPOCACHE,     /* 912 */
   JDEMSGCOMMITREMOTEUSER,   /* 913 */
   JDEMSGROLLBACKREMOTEUSER, /* 914 */
   JDEMSGPREPAREREMOTEUSER,  /* 915 */
   JDEMSGGETUSERLIST,        /* 916 */
   JDEMSGCLEARCACHE,         /* 917 */
   JDEMSGSETUSEROPTION,      /* 918 */
   JDEMSGGETMSDTCWHEREABOUTS,/* 919 */
   JDEMSGXMLCALLOBJ,         /* 920 */
   JDEMSGBULKTREELOADFROMJDECACHE, /* 921 */
   JDEMSGGETZEVENTTEMPLATE, /* 922 */
   JDEMSGCONFIGURATIONCHANGE, /* 923 */

So we can see that 916 is JDEMSGGETUSERLIST.  We can assume that this is server manager asking the kernel who is connected - so that it can report back to eager CNC people.  Let's be honest, I do nto care if this is having problems.

Remember that the jdenet kernel is the magician that is passing messages internally via IPC and externally via TCP/IP.  You can see where they are going to though, just need to read.

At the end of the day, this is a good tip for working back from your logs to deciphering the IPC errors on your server.  Generally if you are hitting OS limits, the JDE logs are going to get pretty verbose.  So in the instance above, we do not need to increase any of the OS limits because of the IPC errors

remember on Linux as the jde user, you can run ipcs and see all of the shared memory and IPCs that JDE is using in kernel world.



Extending JDE to generative AI