I understand your concern. But with this, you are pushing the multi-threading capabilities to the container and want to just concentrate on invoking the biz logic and update the database. I see the following concerns. Obviously you are the best person to judge it for your project.
1. Since the MDB and the session beans would reside on the same container, the number of threads that would be required during this update would be high.
2. With standalone program, you have the option to run it on different machine with dedicated CPU.
. Basically threads would get more CPU time with standalone approach than MDB+SessionBean residing in the same container.
3. What happens when the system is heavily loaded and this process kicks in. Is there a way to control it?. You may want to consider invoking the MDB only during a specific timeframe when the load on the server is minimal.
If you have single thread which fetches record from DB, invokes biz logic and updates back DB, then the response time has to be 0.012 seconds. (3600 seconds/300,000)
Obviously with multithreaded approach you can improve it. However, you may want to quickly check if the response time is met with single thread behavior now. If its less than that, you know its not a problem as of now.
~Rajesh.B