Hi,
I am not sure if I understood your problem quite well.
But one thing you need to keep in mind is that the Tx attributes are enforced and orchestrated by the remote interface stub implementation by app. server. As you know we use the declarative transaction attribute's support to handle the transaction, but someone has to ensure that this method call to be wrapped in a existing or new transaction or no transaction at all. This is the code that
ejb compile will generate for you via implementation of remote interface. Now in your case as you are calling the method "storeerror" as a plain method call from within your try block, it is not wrapped/decorated with the code that will start a new transaction for "storeerror" method.
Hope this helps,
amit