Forum Post: Re: Working With Mqseries (4gl)

  • Thread starter Thread starter Fuelfire
  • Start date Start date
Status
Not open for further replies.
F

Fuelfire

Guest
When open the queue I get an error 2044 (Object descriptor structure not valid). I guess I'm wrong pass Pointer parameters (MQPTR). How to pass parameters of type MQPTR? Here my code, which initialize object descriptor: SET-SIZE(ObjDesc) = 350 /*104857*/. SET-SIZE(ObjectRecPtr) = 4. SET-SIZE(ResponseRecPtr) = 4. ASSIGN CharString = "ODbb" /*StructId (MQCHAR4), 4-byte: MQOD_STRUC_ID*/ StrLength = LENGTH(CharString). PUT-STRING(ObjDesc,1) = CharString. PUT-LONG(ObjDesc,StrLength + 1) = 1. /*Version (MQLONG), 4-byte: MQOD_VERSION_1*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = 1. /*ObjectType (MQLONG), 4-byte: MQOT_Q*/ ASSIGN StrLength = StrLength + 4 CharString = "TEST.Q". PUT-STRING(ObjDesc,StrLength + 1) = CharString. /*ObjectName (MQCHAR48), 48-byte*/ ASSIGN StrLength = StrLength + 48 CharString = "". PUT-STRING(ObjDesc,StrLength + 1) = CharString. /*ObjectQMgrName (MQCHAR48), 48-byte*/ ASSIGN StrLength = StrLength + 48 CharString = "AMQ.*". PUT-STRING(ObjDesc,StrLength + 1) = CharString. /*DynamicQName (MQCHAR48), 48-byte*/ ASSIGN StrLength = StrLength + 48 CharString = AlternateUserId. PUT-STRING(ObjDesc,StrLength + 1) = CharString. /*AlternateUserId (MQCHAR12), 12-byte*/ ASSIGN StrLength = StrLength + 12. PUT-LONG(ObjDesc,StrLength + 1) = 0. /*RecsPresent (MQLONG), 4-byte*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = 0. /*KnownDestCount (MQLONG), 4-byte*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = 0. /*UnknownDestCount (MQLONG), 4-byte*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = 0. /*InvalidDestCount (MQLONG), 4-byte*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = 0. /*ObjectRecOffset (MQLONG), 4-byte*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = 0. /*ResponseRecOffset (MQLONG), 4-byte*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = GET-POINTER-VALUE(ObjectRecPtr). /*ObjectRecPtr (MQPTR), 4-byte*/ ASSIGN StrLength = StrLength + 4. PUT-LONG(ObjDesc,StrLength + 1) = GET-POINTER-VALUE(ResponseRecPtr). /*ResponseRecPtr (MQPTR), 4-byte*/ ASSIGN StrLength = StrLength + 4 CharString = "". PUT-STRING(ObjDesc,StrLength + 1) = CharString. /*AlternateSecurityId (MQBYTE40), 40-byte: MQSID_NONE*/ ASSIGN StrLength = StrLength + 40 CharString = "". PUT-STRING(ObjDesc,StrLength + 1) = CharString. /*ResolvedQName (MQCHAR48), 48-byte*/ ASSIGN StrLength = StrLength + 48 CharString = "". PUT-STRING(ObjDesc,StrLength + 1) = CharString. /*ResolvedQMgrName (MQCHAR48), 48-byte*/ /*Open a query*/ RUN MQOPEN (HConn, INPUT-OUTPUT ObjDesc, /*{&MQOO_INPUT_EXCLUSIVE},*/ {&MQOO_OUTPUT}, OUTPUT Hobj, OUTPUT CompCode, OUTPUT Reason).

Continue reading...
 
Status
Not open for further replies.
Back
Top