cancel
Showing results for 
Search instead for 
Did you mean: 

Error at PI BC_MSG Database

Former Member
0 Kudos

Hello guys,

today we obtained in some messages the next error:

Error occurred while sending message XXXXXXXXXXXXX com.sap.engine.interfaces.messaging.api.exception.MessagingException: Could not insert message XXXXXXXXXXXXXXX(OUTBOUND) into database. Reason: java.sql.SQLException: [SQL0913] Row or object BC_MSG in SAPXIPDB type *FILE in use.

Do you know what could be the error? It seems some error in table BC_MSG of Java stack. After some time the queue has been restarted and messages finished successfully.

Do you know why we had this error and how to avoid it?

Many thanks in advance.

Regards,

Xavi.

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hello guys,

the most part of the JDBC adapters don't have checked the checkbox 'Disconnect from Database After Processing Each Message'. It 's something we have to change at the adapters.

This could affect to the interfaces?

Many thanks.

Regards,

Xavi.

anupam_ghosh2
Active Contributor
0 Kudos

Hi Xavi,

Yes that should solve the issue forever.

regards

Anupam

Former Member
0 Kudos

Hello anupam,

this is one improve we have to do at this project, so I see we have to do it immediately to avoid this errors.

Many thanks.

Regards,

Xavi.

naveen_chichili
Active Contributor
0 Kudos

Hi Xavi,

>>>> java.sql.SQLException: SQL0913 Row or object BC_MSG in SAPXIPDB type *FILE in use

There is nothing wrong with BC_MSG in SAPXIPDB type....there might be temporary dead lock which causes this issue some times.Ensure that no other applications are using the same during that time.

Regards,

Naveen

anupam_ghosh2
Active Contributor
0 Kudos

Hi Xavi,

There is nothing wrong with the table BC_MSG. I think insertion of new records, is not the only operation you are performing on the table.There must be other operations such as deletion,update etc being done on the table. If you want this error not to be shown again, you need to ensure that when your JDBC program reads the records all other connections to database is closed. That is to say all access to the table has to be isolated. In java it is adviced to use session beans to access database using SQL query. Each query now runs in a separate transaction, thus next transaction waits until first one is complete. Or somehow you need to isolate each calls to database. Here are some links to session bean concepts

http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts3.html

http://stackoverflow.com/questions/3332543/diff-between-database-conn-through-session-bean-and-entit...

http://download.oracle.com/docs/cd/E19644-01/817-5049/desessn.html

Hope this helps

regards

Anupam

Edited by: anupamsap on Jul 19, 2011 9:00 PM

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>Do you know why we had this error and how to avoid it?

Talk to your basis team. The problem might be due to database cannot write on table due to less space in filing system or database table is locked by some other thread temporarily. You might also want to see pi server log and see further details. If the space is issue in hardware level, releasing some extra memory resources would take care this issue.