- 论坛徽章:
- 0
|
本帖最后由 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 */
- 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 */
复制代码 |
|