ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Can COA be sent before a receiver transaction commit?

Post new topic  Reply to topic
 Can COA be sent before a receiver transaction commit? « View previous topic :: View next topic » 
Author Message
Maykel
PostPosted: Thu May 12, 2005 5:43 am    Post subject: Can COA be sent before a receiver transaction commit? Reply with quote

Newbie

Joined: 12 May 2005
Posts: 1

Hi All,

I've noticed very strange behavior of client's system.
There's QM_SDR on W2k and a QM_RCVR on HP-UX 11.11. Both 5.3 CSD 07.

QM_SDR sends a message to QM_RCVR. A receiver channel on QM_RCVR has a message exit defined which stamps a message in PutAppName header field with current time.

It looks like this
Code:

void MQENTRY MsgExit( PMQCXP     pChannelExitParams,
                                  PMQCD      pChannelDefinition,
                                  PMQLONG    pDataLength,
                                  PMQLONG    pAgentBufferLength,
                                  PMQBYTE    AgentBuffer,
                                  PMQLONG    pExitBufferLength,
                                  PMQPTR     pExitBufferAddr)
{
   switch( pChannelExitParams-> ExitReason )
       {
           case MQXR_MSG:
            {
               time_t clock = time( (time_t*) NULL);
               struct tm *tmptr = localtime(&clock);
               
               char* appField = (char*) ( ((PMQXQH) AgentBuffer) -> MsgDesc).PutApplName;
               memset(appField,0,MQ_PUT_APPL_NAME_LENGTH);
               sprintf( appField, TIME_FORMAT,
                  tmptr->tm_year+1900,
                  tmptr->tm_mon+1,
                  tmptr->tm_mday,
                  tmptr->tm_hour,
                  tmptr->tm_min,
                  tmptr->tm_sec % 59 );
               
               break;
            }
         default:
                   break;
      } /* switch */
        pChannelExitParams -> ExitResponse = MQXCC_OK;
        return;
     
}/* end exit */


It always happened that timestamp in message exits was same as COA timestamp generated by QM_RCVR. Until yesterday.

QM_SDR was down because of failure for about half on hour.
It received COA with message timestamp 11:00:00. Timestamp in message PutApplName header field read by QM_RCVR client was 11.30:05. If the QM_RCVR client cannot parse PutApplName field according to time format (eg. there was no message exit defined on a channel - not in this case ) it assumes MQGET time. It was indeed 11.30:05.

My question is : Is it possible for QM_RCVR to generate a COA and then after 30 minutes run message exit on receiving channel to stamp a message (and do the commit on receiver queue)?

Or is it possible that message exit was not executed because of...(no idea) ?

Regards,

Maykel
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Can COA be sent before a receiver transaction commit?
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.