code: private TopicSubscriberPingMonitor setupPingConsumer(String eventName, String destinationName, String subscriptionId, Session session) {
          TopicSubscriberPingMonitor ret = null;
          if (destinationType == DestinationType.Topic || destinationType == DestinationType.DurableTopic) {
              boolean monitorThisEvent = monitorEvent(eventName);
              if (monitorThisEvent) {
                  long pingFailureTimeout = getSubscriberPingFailureTimeout(eventName);
                  long pingWarningTimeout = getSubscriberPingWarningTimeout(eventName);
                  Status maxStatus = getSubscriberMaxEffectOnOverallStatus(eventName);
                  ret = new TopicSubscriberPingMonitor(transportIdentifier, destinationName, subscriptionId, pingWarningTimeout, pingFailureTimeout, maxStatus);
                  subscriberMonitorsBySession.put(session, ret);
                  if (monitorRegistry != null) {
                      monitorRegistry.addMonitor(ret);
                  }
                  if (jmxControl != null) {
                      String name = "CoUGAR."+getTransportShortName()+".transport.monitoring:type=subscriber,serviceName="+eventServiceBindingDescriptor.getServiceName()+",serviceVersion="+eventServiceBindingDescriptor.getServiceVersion()+",eventName="+eventName+",destination="+destinationName;
                      if (transportIdentifier != null) {
                          name += ",transportIdentifier="+transportIdentifier;
                      }
                      jmxControl.registerMBean(name, ret);
                  }
              }
          }
          return ret;
      }
docs: SessionManager