急急急 MQRMH 索引消息传输文件 websphere8 java

cs_cef 2015-04-21 11:47:37
与这位楼主一模一样的问题, 也不知道他怎么解决的, 哪位大神知道解决方案
http://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 */



在线等~~~~~
...全文
691 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
红面狼 2015-05-08
  • 打赏
  • 举报
回复
顶一下
cs_cef 2015-04-21
  • 打赏
  • 举报
回复
顶一下

2,633

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧