Bạn có thể tra cứu thời gian chạy JMX giống nhau cho tất cả các ứng dụng. Không cần nhập địa chỉ, người dùng hoặc mật khẩu.
1) Tra cứu MBeanServer
InitialContext ctx = new InitialContext();
MBeanServer mBeanServer = (MBeanServer) ctx.lookup("java:comp/env/jmx/runtime");
2) Sau đó, bạn cần truy xuất tên của máy chủ đang chạy ứng dụng. Ở đây có hai cách (có thể nhiều hơn).
Đơn giản nhất
String serverName = System.getProperty("weblogic.Name");
Nhưng tôi không biết đó có phải là cách đáng tin cậy hay không.
Cách khác để lấy tên máy chủ là tìm nó trong các thuộc tính dịch vụ thời gian chạy.
ObjectName serviceObjectName = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
String serverName = (String) mBeanServer.getAttribute(serviceObjectName, "ServerName");
3) Bây giờ chúng ta có thể tạo máy chủ thời gian chạy ObjectName ...
ObjectName serverRuntime = new ObjectName("com.bea:Name="+serverName+",Type=ServerRuntime");
4) ... và nhận các thuộc tính chúng tôi cần
String listenAddress = mBeanServer.getAttribute(serverRuntime, "ListenAddress");
Integer listenPort = mBeanServer.getAttribute(serverRuntime, "ListenPort");
rem:ngheAddress được định dạng là hostname
/ IP
, bạn phải thao tác nó để chỉ lấy IP hoặc máy chủ lưu trữ
Từ đó bạn có thể truy cập vào nhiều thông tin; như địa chỉ của máy chủ quản trị quản lý máy chủ thời gian chạy, cụm thời gian chạy, ....
Đây là danh sách tôi nhận được từ bảng điều khiển WLST (WL12.2.1), không kiểm tra xem chúng tôi có quyền truy cập vào tất cả các thuộc tính / MBean's hay không.
dr-- ApplicationRuntimes
dr-- AsyncReplicationRuntime
dr-- BatchJobRepositoryRuntime
dr-- ClassLoaderRuntime
dr-- ClusterRuntime
dr-- ConcurrentManagedObjectsRuntime
dr-- ConnectorServiceRuntime
dr-- DefaultExecuteQueueRuntime
dr-- EntityCacheCumulativeRuntime
dr-- EntityCacheCurrentStateRuntime
dr-- EntityCacheHistoricalRuntime
dr-- ExecuteQueueRuntimes
dr-- JDBCServiceRuntime
dr-- JMSRuntime
dr-- JTARuntime
dr-- JVMRuntime
dr-- JoltRuntime
dr-- LibraryRuntimes
dr-- LogBroadcasterRuntime
dr-- LogRuntime
dr-- MANAsyncReplicationRuntime
dr-- MANReplicationRuntime
dr-- MailSessionRuntimes
dr-- MaxThreadsConstraintRuntimes
dr-- MessagingBridgeRuntime
dr-- MessagingBridgeRuntimes
dr-- MinThreadsConstraintRuntimes
dr-- PartitionRuntimes
dr-- PathServiceRuntime
dr-- PathServiceRuntimes
dr-- PersistentStoreRuntimes
dr-- RequestClassRuntimes
dr-- SAFRuntime
dr-- SNMPAgentRuntime
dr-- ServerChannelRuntimes
dr-- ServerLogRuntime
dr-- ServerSecurityRuntime
dr-- ServerServices
dr-- SingleSignOnServicesRuntime
dr-- ThreadPoolRuntime
dr-- TimerRuntime
dr-- WANReplicationRuntime
dr-- WLDFRuntime
dr-- WTCRuntime
dr-- WebServerRuntimes
dr-- WorkManagerRuntimes
dr-- WseeClusterFrontEndRuntime
dr-- WseeWsrmRuntime
-r-- ActivationTime
-r-- AdminServer
-r-- AdminServerHost
-r-- AdminServerListenPort
-r-- AdminServerListenPortSecure
-r-- AdministrationPort
-r-- AdministrationPortEnabled
-r-- AdministrationURL
-r-- AsyncReplicationRuntime
-r-- ClusterRuntime
-r-- CurrentDirectory
-rw- CurrentMachine
-r-- DefaultExecuteQueueRuntime
-r-- DefaultURL
-r-- EntityCacheCumulativeRuntime
-r-- EntityCacheCurrentStateRuntime
-r-- EntityCacheHistoricalRuntime
-r-- HealthState
-r-- HealthStateJMX
-r-- JoltRuntime
-r-- ListenAddress
-r-- ListenPort
-r-- ListenPortEnabled
-r-- MANAsyncReplicationRuntime
-r-- MANReplicationRuntime
-r-- MessagingBridgeRuntime
-r-- MiddlewareHome
-r-- Name
-r-- OpenSocketsCurrentCount
-r-- OracleHome
-r-- OverallHealthState
-r-- OverallHealthStateJMX
-rw- Parent
-r-- PathServiceRuntime
-r-- RestartRequired
-r-- RestartsTotalCount
-r-- SSLListenAddress
-r-- SSLListenPort
-r-- SSLListenPortEnabled
-r-- ServerClasspath
-r-- SocketsOpenedTotalCount
-r-- State
-r-- StateVal
-r-- Type
-r-- WANReplicationRuntime
-r-- WeblogicHome
-r-- WeblogicVersion
-r-- WseeClusterFrontEndRuntime