If I understood your requirement correctly,
You need to extract EDI from Oracle db by executing around 25 stored procedures and also in another process you need to send message into Oracle db and needs to execute
25 stored procedures to send data into relevant tables.
IMO, I would use a separate table for BizTalks inbound and outbound in Oracle. And have an internal batch process within Oracle.
So for your outbound process (from Oracle to BizTalk) where you want to generate the EDI from Oracle for BizTalk:
Let the batch process populate this BizTalk specific table with data/records whenever they want to send the message to BizTalk with dataset required for EDI. Let this batch
process to execute the relevant stored procedures (25) to populate the data into this BizTalk specific table.
BizTalk can poll for this table alone and whenever the data/record is there for BizTalk to process, BizTalk can process and generate the EDI file from that table.
So for your inbound process ( from BizTalk to Oracle) where you want to send the EDI from BizTalk into Oracle dbs:
Let BizTalk send the message out to one (or few tables) in Oracle and let the batch process execute the multiple stored procedure to insert the data/record from BizTalk
specific table to other relevant tables.
Using this batch process within Oracle, you mitigate the data-cleansing task to database and whereas BizTalk can only be used for data integration across systems. Since
you also expect high-load, this design will be better as BizTalk is employed just for handling the high-volume message rather than high-data cleansing task. This design also has the advantage of less maintenance issue as executing the multiple stored procedures
happens within database end, hence less transaction related issues which you can normally expected in database related processes.
Regards,
M.R.Ashwin Prabhu