Azure / azure-service-bus-java

☁️ Java client library for Azure Service Bus
https://azure.microsoft.com/services/service-bus
MIT License
60 stars 59 forks source link

(service bus topic) always create connect to service and last jvm out of memory #339

Closed ancientelves closed 5 years ago

ancientelves commented 5 years ago

1.connect to serviceBus and can receive message success 2.after a while appear some same exception,one of it is below: ServiceBusException: Error{condition=amqp:connection:forced, description='The connection was inactive for more than the allowed 60000 milliseconds and is closed by container 'LinkTracker'. TrackingId:0f8601a8c4994d7faa8e6d375f80dd43_G6, SystemTracker:gateway8, Timestamp:2019-02-13T19:10:05', info=null} 3.jvm occured out of memory: 2019-02-14 03:28:30.885 INFO [notification-service,,,,] 8 --- [ReactorThread5a102b15-a6a2-4d44-a3c3-759963b25e54] com.microsoft.azure.servicebus.primitives.MessagingFactory : Creating connection to host 'amasbprd.servicebus.chinacloudapi.cn:5671' Exception in thread "ReactorThread5a102b15-a6a2-4d44-a3c3-759963b25e54" java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.Arrays.copyOfRange(Arrays.java:3664) at java.lang.String.(String.java:207) at java.lang.String.substring(String.java:1969) at java.lang.String.subSequence(String.java:2003) at java.util.regex.Pattern.split(Pattern.java:1216) at java.util.regex.Pattern.split(Pattern.java:1273) 4.timeout appear: 2019-02-14 03:29:00.891 ERROR [notification-service,,,,] 8 --- [ForkJoinPool.commonPool-worker-2] com.microsoft.azure.servicebus.primitives.MessagingFactory : Sending CBS Token for amqp://amasbprd.servicebus.chinacloudapi.cn/process-topic/subscriptions/process-subscription failed.

java.util.concurrent.CompletionException: com.microsoft.azure.servicebus.primitives.TimeoutException: Request timed out.

5.then log always print message is below: CoreMessageReceiver : No messages received from 'process-topic/subscriptions/process-subscription'. Pending receive request timed out. Returning null to the client

now the client can't receive any message from serviceBus,i restart the tomcat,everything is ok.

i want to know what happend?

ancientelves commented 5 years ago

if i can do something to prevent this appear again?thanks

yvgopal commented 5 years ago

Fix the issue of JVM running out of memory. Either your JVM settings specify very low memory or some other program is eating all your memory. Correct the memory issue and you are good. Inactive links and connections are closed after some idle time and client reconnect automatically. That is not the problem. Out of memory is your problem. I can't really help with that.