免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2014 | 回复: 0
打印 上一主题 下一主题

急急急 MQRMH 索引消息传输文件 websphere8 java [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-21 17:42 |只看该作者 |倒序浏览
本帖最后由 cu_cef 于 2015-04-21 17:43 编辑

与这位楼主一模一样的问题, 也不知道他怎么解决的, 哪位大神知道解决方案
bbs.csdn.net/topics/190046875

之前是在旧版本的websphere用C程序实现的索引消息传输文件, 现在要在8.0版本 用java实现.

C版本大致如下:

  1.    MQOD     od = {MQOD_DEFAULT};    /* Object Descriptor             */
  2.    MQMD     md = {MQMD_DEFAULT};    /* Message Descriptor            */
  3.    MQPMO    pmo = {MQPMO_DEFAULT};  /* put message options           */
  4.    MQGMO    gmo = {MQGMO_DEFAULT};  /* get message options           */
  5.    MQRMHX   refx = {{MQRMH_DEFAULT}}; /* reference message           */

  6.    MQHCONN  Hcon;                   /* connection handle             */
  7.    MQHOBJ   Hobj = MQHO_UNUSABLE_HOBJ;
  8.                                     /* object handle                 */
  9.    MQLONG   CompCode ;     /* completion code               */
  10.    MQLONG   ConnCode ; /* MQCONN completion code        */
  11.    MQLONG   Reason;                 /* reason code                   */
  12.    MQLONG   CReason;                /* reason code for MQCONN        */
  13.    MQLONG   co  = MQCO_NONE;        /* MQCLOSE options               */
  14.    MQLONG   DataLength;             /* Length of report message      */
  15.    MQLONG   WaitInterval = 15 ;
  16.                                     /* Wait interval                 */
  17.    MQLONG   QMgrCCSID;              /* QMgr CodedCharSetId           */
  18.    PMQRMH   pMQRMH;   /* -> MQRMH structure            */
  19.    PMQXQH   pMQXQH;                 /* -> MQXQH structure            */

  20.    char     QMName[MQ_Q_MGR_NAME_LENGTH+1] = "qmgrname" ;
  21.                                     /* local queue manager name      */
  22.    char     DestQName[MQ_Q_NAME_LENGTH+1] = "queuename" ;
  23.                                     /* destination queue name        */
  24.    char     SourceFileName[MAX_FILENAME_LENGTH+1] = "filename" ;
  25.                                     /* source file name              */
  26.    char     TargetFileName[MAX_FILENAME_LENGTH+1] = "filename" ;
  27.                                     /* target file name              */
  28.    char     ObjectType[sizeof(refx.ref.ObjectType)];
  29.                                     /* Object type                   */
  30.    char     Buffer[sizeof(MQXQH)+MAX_MQRMH_LENGTH];       

  31.    strcpy(QMName, sMQManager);
  32.    strcpy(DestQName, sMQSendQueue);
  33.    strcpy(SourceFileName, sFileName);

  34.    sprintf(SourceFileName,"%s\\%s",getenv("MQ_FILEPATH"),sFileName);//源文件名
  35.    strcpy(TargetFileName, sFileName);
  36.    sprintf(errorstr,"QMName=[%s],DestQName=[%s],SourceFileName=[%s]\n\n",QMName,DestQName,SourceFileName);

  37.    MQCONN( QMName                 /* queue manager                  */
  38.            ,&Hcon                  /* connection handle              */
  39.            ,&ConnCode              /* completion code                */
  40.            ,&CReason );             /* reason code                    */

  41.      CompCode = ConnCode;

  42.          memset(ObjectType,' ',sizeof(ObjectType));
  43.          memcpy(ObjectType, "FLATFILE", sizeof("FLATFILE") - 1  );         

  44.          refx.ref.StrucLength         = sizeof(refx);
  45.      refx.ref.Encoding            = MQENC_NATIVE;
  46.      refx.ref.CodedCharSetId      = QMgrCCSID;
  47.      memcpy(refx.ref.Format,MQFMT_STRING
  48.            ,(size_t)MQ_FORMAT_LENGTH);
  49.      refx.ref.Flags               = MQRMHF_LAST;
  50.      memcpy(refx.ref.ObjectType,ObjectType,
  51.             sizeof(refx.ref.ObjectType));

  52.      memset(refx.SrcName
  53.            ,' '
  54.            ,sizeof(refx.SrcName)+sizeof(refx.DestName));

  55.      memcpy(refx.SrcName
  56.            ,SourceFileName
  57.            ,strlen(SourceFileName)
  58.            );
  59.      memcpy(refx.DestName
  60.            ,TargetFileName
  61.            ,strlen(TargetFileName)
  62.            );

  63.      refx.ref.SrcNameLength = strlen(SourceFileName);
  64.      refx.ref.SrcNameOffset = offsetof(MQRMHX,SrcName);

  65.      refx.ref.DestNameLength = strlen(TargetFileName);
  66.      refx.ref.DestNameOffset = offsetof(MQRMHX,DestName);

  67.          memcpy(md.ReplyToQ         
  68.            ,"QUEUE_REPORT"
  69.            , strlen( "QUEUE_REPORT" )
  70.             );
  71.      strncpy(od.ObjectName
  72.             ,DestQName
  73.             ,sizeof(od.ObjectName)
  74.              );

  75.          md.Report = MQRO_COA_WITH_FULL_DATA + MQRO_EXCEPTION_WITH_FULL_DATA;       
  76.      pmo.Options = MQPMO_FAIL_IF_QUIESCING;
  77.      memcpy(md.Format,MQFMT_REF_MSG_HEADER
  78.            ,(size_t)MQ_FORMAT_LENGTH);

  79.      MQPUT1(Hcon,                    /* connection handle            */
  80.             &od,                     /* object descriptor for queue  */
  81.             &md,                     /* message descriptor           */
  82.             &pmo,                    /* options                      */
  83.             sizeof(refx),            /* buffer length                */
  84.             &refx,                   /* buffer                       */
  85.             &CompCode,               /* MQPUT1 completion code       */
  86.             &Reason);                /* reason code                  */
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP