On 8-21-2001, I discovered that the image server code will not work with MQ Series 5.2. The background and details follow. ------------------------------------------------------------------------------ To install MQ Series, the minimum you need are mqm.Client.Bnd mqm.Server.Bnd mqm.base.runtime mqm.base.sdk mqm.client.rte mqm.msg.en_US       (MQ Series 5.1 Only) mqm.server.rte Afterwards, you can run /ips/bin/setupmq.sh, which will define the proper MQ queue manager and set permissions. You can then start MQ Series with strmqm watusi.queue.manager To stop MQ Series, endmqm -i watusi.queue.manager rm /ips/ipc/* To delete the queue manager, dltmqm watusi.queue.manager To re-install MQ Series, endmqm -i watusi.queue.manager dltmqm watusi.queue.manager installp -u mqm Then re-install. There is a MQ Series utility called runmqsc that you can use to do some things with. I didn't find this too useful, tho. The MQ Series queues the image server code uses, are defined the first time you start su - ipsrun cd /ips/bin arcroute The queue names are rtework.que.active => All active jobs. Has a limit of 20-30 or so, jobs. When there's more, the overflow goes into the rtework.que.wait. rtework.que.agents => Holds info for each arcpat agent. rtework.que.sched => Kin never used and never looked at. rtework.que.status => Combination of active & wait. rtework.que.wait => Rarely used queue for lower-priority jobs. About the only one you would ever look at, is the rtework.que.status queue. To look at any of these queues, use the locally-written utility /ips/bin/rtebrows For example, /ips/bin/rtebrows rtework.que.status If you ever wanted to clear out all the backed-up jobs, clear out the rtework.que.active rtework.que.wait and rtework.que.status queues by the following commands, /ips/bin/rtebrows rtework.que.active DESTROY /ips/bin/rtebrows rtework.que.status DESTROY /ips/bin/rtebrows rtework.que.wait DESTROY ------------------------------------------------------------------------------ The error I was getting with MQ Series 5.2, could be seen when running the arcroute program from the shell or in the /ips/logs/arcroute*log file. It would start everything up ok, but 30 seconds later, I got, : RTE0455I RequestAgentRegister: Agent patdlv0: "Delphion IPSfDB2 - Image Delivery System - Delivery agent", type [Delivery] has registered (pid=17058, tid=0, qid=0), rc=0 : RTE0455I RequestAgentRegister: Agent patdlv1: "Delphion IPSfDB2 - Image Delivery System - Delivery agent", type [Delivery] has registered (pid=26582, tid=0, qid=0), rc=0 : RTE0455I RequestAgentRegister: Agent patdlv2: "Delphion IPSfDB2 - Image Delivery System - Delivery agent", type [Delivery] has registered (pid=26832, tid=0, qid=0), rc=0 : RTE0455I RequestAgentRegister: Agent patnfy1: "Delphion IPSfDB2 - Image Delivery System - Notify agent", type [Notify] has registered (pid=27348, tid=0, qid=0), rc=0 : RTE0455I RequestAgentRegister: Agent patnfy2: "Delphion IPSfDB2 - Image Delivery System - Notify agent", type [Notify] has registered (pid=27864, tid=0, qid=0), rc=0 : RTE0504E Listen4Work: Cannot read event from queue [work queue], rc=99 : RTE0508E arcroute: n/a: MQDISC main: Failed with rc=1476395008 : RTE1904S RteHeart: Parent process is dead! The RTE0504E message is defined in /afs/d/projects/imageservers/rime/source/router/lib/rteusen.min as 0504 E ARCROUTE_MSG_cant_read_from_queue This RTE0504E message is printed out in the Listen4Work routine on line 674 of the /afs/d/projects/imageservers/rime/source/router/arcroute/arcroute.c source code. This code segment is /* ** If items on the queue or no work to schedule, ** process or wait for new work. */ if (ARCROUTE_TRACE_WORKQUEUE(pWorkInfo->trace)) { CtlNlsPrintf(pWorkInfo->routelog, ARCROUTE_MSG_waiting, thisroutine); } /* ** Read the queue - will block if nothing on the queue */ gmo.Options = #ifdef MQSYNC MQGMO_SYNCPOINT + MQGMO_WAIT; /* wait for new messages */ #endif gmo.WaitInterval = MQWI_UNLIMITED; memcpy(md.MsgId, MQMI_NONE, sizeof(md.MsgId)); memcpy(md.CorrelId, MQCI_NONE, sizeof(md.CorrelId)); CompCode = MQGetEvent(pWorkInfo->qhConnect, pWorkInfo->qhWork, &md, &gmo, &msgtype, &pCtlPkt); if (CompCode) { CtlNlsPrintf(pWorkInfo->routelog, ARCROUTE_MSG_cant_read_from_queue, thisroutine, "work queue", CompCode); EARLY(CompCode, ARCROUTE_MSG_cant_read_from_queue); } Beyond that, I need an education in MQ Series to understand. ------------------------------------------------------------------------------ A configuration file for the image server code is ARCROUTE_INIFILE I found this on an old scrap of paper. I think it was relavent, but I forgot why. I think it was part of an effort to clean up the directory structure and this is where you need to change /arc to /ips.