cancel
Showing results for 
Search instead for 
Did you mean: 

Sync Messages Payload

Former Member
0 Kudos

Hello guys! What are you using to see the payload of synchronous messages in 7.31 productive systems?

I've been using the logging system (xiadapter.logger.conf) but my log tables in the database are growing fast!

So, I was wondering If there is anything else! I came across the parameter "messaging.syncMessageRemover.removeBody=false", but I've heard that it should not be used in productive systems because the payload is stored in memory (and not in the database) and that this could lead to OutOfMemoryErrors in the SAP J2EE Engine.

Any suggestions?

Regards

Julio

Accepted Solutions (1)

Accepted Solutions (1)

former_member182412
Active Contributor
0 Kudos

Hi Julio,

You can use logging if the table grows quickly then change the retention period from default 7 days to 1 day. check below blog for more details.


Synchronous messages are only logged in BC_MSG_LOG without a corresponding entry in BC_MSG table. Therefore, these entries have their own retention period specified by property "messaging.log.retainTime" in NWA -> Configuration -> Infrastructure -> Java System Properties -> Services -> "XPI Service: Messaging System". The default retention period for logged messages is 7 days.

Regards,

Praveen.

Answers (1)

Answers (1)

vadimklimov
Active Contributor
0 Kudos

Hi Julio,

What parameter values for logging do you use? Are there many steps for which you enabled logging? Do you need it globally or can it be specified for particular interfaces?

As Praveen mentioned, you may want to check value of the property "messaging.log.retainTime" of a Java service "XPI Service: Messaging System", it defines how many days logged synchronous messages will be kept in database (in the table BC_MSG_LOG) before they get deleted. By default, it is set to 7, which means logged versions of synchronously processed messages will be kept for a week before deletion job can clean them up from the database. Probably you may want to reduce this period.

It also makes sense to check if message deletion job is scheduled and executed successfully on a regular basis.

Memory areas which are used when dealing with synchronous messages - precisely, message store and persistence areas - shall be differentiated when dealing with synchronous messages, since they are customized separately. Parameterization discussed above affects persistence of synchronous messages in database. Properties "messaging.syncMessageRemover.*" of a Java service "XPI Service: Messaging System" affect in-memory area allocated for synchronous messages and indirectly impact memory consumed by this area. When speaking about risk of Java out of memory caused by intensive storage of synchronous messages, it is all about in-memory related parameters of synchronous message remover mentioned above, staging parameterization doesn't affect this since it is targeted at database persistence.

Regards,

Vadim

Former Member
0 Kudos

Hi Vadim! Currently I am logging only particular interfaces/scenarios to avoid huge database growing! Reducing the retention period ("messaging.log.retainTime") would work for me and I was about to do that when I came across the parameter "messaging.syncMessageRemover.removeBody=false"! So, I just wanted to confirm with you guys that logging (with a small retention period) would be better than setting removeBody to false!


Thank you again


Julio