Failure in mounting DSMCC Carousel due to DII update
Sometimes, I'm unable to mount the DSMCC Object Carousel.
Mounting of Object carousel is done using the 'attach()' call of ServiceDomain. During this operation, we are trying to load the DDBs which are present in the Module. But this operation fails with a message - 'Unable to load DDB 0 from invalid module 0001'.
On analysing the source code and logs, it is seen that while fetching/prefetching DDBs of module 0001 is in progress, a DII update has come up. On this DII, a new version of module 0001 is present (Original version was 231, and new version is 232). On procesing this DII update, the module with version 231 has been made as invalid and all the pending prefetch requests are cancelled. This cancellation in turn triggers for retry of the DDB readings from the beginning. But, while doing so, it sees that the module has become invalid and hence the loading is failed, which ultimately results in failure in attaching (mounting).
The logs are attached here with(DSMCC_ForumLog.txt). The fetching of DDB can be seen in line number 733 of teh log, DII update coming up in line 912 , cancellation of prefetch requests in line 959 and the failure to read DDB during retry in line 1069.
After going through the code and logs, i feel like this is working as expected. Please confirm whether this is the intended behavior itself. Also, if so, how can a client application handle this situation of DII update coming up while the mounting (fetching/prefetching of DDBs in module) is in progress ?