Hi!
We are using amd dispatch in our ice application:
1. complete request
2. analyze request data.
For example:
Is it ok to use the argument buffer in such puttern, or it will be invalidated after ice_response()? It's works, but once we have received a strange buffer with partially damaged data - surely header of the another ice packet:Code:// ["ami", "amd"] void OnItemComplete(["cpp:array"] Ice::ByteSeq btResult); virtual void OnItemComplete_async ( constagent::AMD_IItemEvent_OnItemCompletePtr &pRes, const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*> &resData, const ::Ice::Current& /* = ::Ice::Current */ ) { // complete just now! pRes->ice_response(); OnItemComplete(resData); }
May be this is a bug on other side, f.e., while filling a request data, but at first look it seems can't be possible... And moreover - we sometimes see "bad magic" exceptions in our's logs - may be, this are linked problems...Code:0x0B845465 ac 10 81 b1 ca 12 ed 8e 11 c5 78 55 be 2f 84 c9 ¬.Ѓ±К.нЋ.ЕxUѕ/.Й 0x0B845475 50 18 7f 2f a3 eb 00 00 49 63 65 50 01 00 01 00 P../Јл..IceP.... 0x0B845485 00 00 e9 02 00 00 4a 02 00 00 24 33 31 63 61 30 ..й...J...$31ca0 0x0B845495 36 36 37 2d 64 33 39 38 2d 34 33 39 35 2d 61 61 667-d398-4395-aa 0x0B8454A5 66 30 2d 64 37 33 30 39 62 35 35 31 66 34 61 00 f0-d7309b551f4a. 0x0B8454B5 00 0e 4f 6e 49 74 65 6d 43 6f 6d 70 6c 65 74 65 ..OnItemComplete
Thanks!
--
Andrew Solodovnikov

Reply With Quote
Thanks, i will try to verify client code - maybe, it can form incorrect buffer. But for now it looks like impossible situation.