2,633
社区成员
发帖
与我相关
我的任务
分享
MQOD od = {MQOD_DEFAULT}; /* Object Descriptor */
MQMD md = {MQMD_DEFAULT}; /* Message Descriptor */
MQPMO pmo = {MQPMO_DEFAULT}; /* put message options */
MQGMO gmo = {MQGMO_DEFAULT}; /* get message options */
MQRMHX refx = {{MQRMH_DEFAULT}}; /* reference message */
MQHCONN Hcon; /* connection handle */
MQHOBJ Hobj = MQHO_UNUSABLE_HOBJ;
/* object handle */
MQLONG CompCode ; /* completion code */
MQLONG ConnCode ; /* MQCONN completion code */
MQLONG Reason; /* reason code */
MQLONG CReason; /* reason code for MQCONN */
MQLONG co = MQCO_NONE; /* MQCLOSE options */
MQLONG DataLength; /* Length of report message */
MQLONG WaitInterval = 15 ;
/* Wait interval */
MQLONG QMgrCCSID; /* QMgr CodedCharSetId */
PMQRMH pMQRMH; /* -> MQRMH structure */
PMQXQH pMQXQH; /* -> MQXQH structure */
char QMName[MQ_Q_MGR_NAME_LENGTH+1] = "qmgrname" ;
/* local queue manager name */
char DestQName[MQ_Q_NAME_LENGTH+1] = "queuename" ;
/* destination queue name */
char SourceFileName[MAX_FILENAME_LENGTH+1] = "filename" ;
/* source file name */
char TargetFileName[MAX_FILENAME_LENGTH+1] = "filename" ;
/* target file name */
char ObjectType[sizeof(refx.ref.ObjectType)];
/* Object type */
char Buffer[sizeof(MQXQH)+MAX_MQRMH_LENGTH];
strcpy(QMName, sMQManager);
strcpy(DestQName, sMQSendQueue);
strcpy(SourceFileName, sFileName);
sprintf(SourceFileName,"%s\\%s",getenv("MQ_FILEPATH"),sFileName);//源文件名
strcpy(TargetFileName, sFileName);
sprintf(errorstr,"QMName=[%s],DestQName=[%s],SourceFileName=[%s]\n\n",QMName,DestQName,SourceFileName);
MQCONN( QMName /* queue manager */
,&Hcon /* connection handle */
,&ConnCode /* completion code */
,&CReason ); /* reason code */
CompCode = ConnCode;
memset(ObjectType,' ',sizeof(ObjectType));
memcpy(ObjectType, "FLATFILE", sizeof("FLATFILE") - 1 );
refx.ref.StrucLength = sizeof(refx);
refx.ref.Encoding = MQENC_NATIVE;
refx.ref.CodedCharSetId = QMgrCCSID;
memcpy(refx.ref.Format,MQFMT_STRING
,(size_t)MQ_FORMAT_LENGTH);
refx.ref.Flags = MQRMHF_LAST;
memcpy(refx.ref.ObjectType,ObjectType,
sizeof(refx.ref.ObjectType));
memset(refx.SrcName
,' '
,sizeof(refx.SrcName)+sizeof(refx.DestName));
memcpy(refx.SrcName
,SourceFileName
,strlen(SourceFileName)
);
memcpy(refx.DestName
,TargetFileName
,strlen(TargetFileName)
);
refx.ref.SrcNameLength = strlen(SourceFileName);
refx.ref.SrcNameOffset = offsetof(MQRMHX,SrcName);
refx.ref.DestNameLength = strlen(TargetFileName);
refx.ref.DestNameOffset = offsetof(MQRMHX,DestName);
memcpy(md.ReplyToQ
,"QUEUE_REPORT"
, strlen( "QUEUE_REPORT" )
);
strncpy(od.ObjectName
,DestQName
,sizeof(od.ObjectName)
);
md.Report = MQRO_COA_WITH_FULL_DATA + MQRO_EXCEPTION_WITH_FULL_DATA;
pmo.Options = MQPMO_FAIL_IF_QUIESCING;
memcpy(md.Format,MQFMT_REF_MSG_HEADER
,(size_t)MQ_FORMAT_LENGTH);
MQPUT1(Hcon, /* connection handle */
&od, /* object descriptor for queue */
&md, /* message descriptor */
&pmo, /* options */
sizeof(refx), /* buffer length */
&refx, /* buffer */
&CompCode, /* MQPUT1 completion code */
&Reason); /* reason code */