This question was asked in November... any traction on this?
The issue that I found was that I was not setting the message buffers different for each message. I didn't realize you had to set each message to load into a specific buffer.
Yes, unfortunately if you want to use the same MB for multiple transfers you'll have to do one of the following:
- either use blocking mode (which will likely slow down a bit your application)
- either use non-blocking mode, but making sure the 2nd transfer on the same MB will be done only after the 1st was completed. Otherwise, the 1st transfer will be halted by the 2nd, so it will not run to completion.
The 2nd option here depends on how you write your application, as you'll have to manage the timing yourself - nevertheless, it can have the advantage of a slightly faster application (depending on what overhead you add with the timing management).
The 1st option is simple enough (the block handles everything), but you must decide if that bit of extra time spent in the blocking transfer is something you can have or not in your application.
The best scenario is the one where you have MBs available so that you can use the non-blocking mode, each transfer having it's own MB set.
Hope this clears things up a bit.