急急急 MQRMH 索引消息传输文件 websphere8 java
本帖最后由 cu_cef 于 2015-04-21 17:43 编辑与这位楼主一模一样的问题, 也不知道他怎么解决的, 哪位大神知道解决方案
bbs.csdn.net/topics/190046875
之前是在旧版本的websphere用C程序实现的索引消息传输文件, 现在要在8.0版本 用java实现.
C版本大致如下:
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 */
MQHCONNHcon; /* 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 = "qmgrname" ;
/* local queue manager name */
char DestQName = "queuename" ;
/* destination queue name */
char SourceFileName = "filename" ;
/* source file name */
char TargetFileName = "filename" ;
/* target file name */
char ObjectType;
/* Object type */
char Buffer;
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 */
页:
[1]