通过 Jolokia 获取 JDBC 池的 MBean 值

问题描述 投票:0回答:1

我正在尝试使用 Jolokia 监视某些 Java 应用程序的 JDBC 池。我可以使用以下方法获取 JDBC 池的所有属性的完整列表:

# curl -k http://127.0.0.1:50147/jolokia/read/'Catalina:type=DataSource,class=javax.sql.DataSource,connectionpool=connections,context=*,host=*,name=*' | python -m json.tool

{
    "request": {
        "mbean": "Catalina:class=javax.sql.DataSource,connectionpool=connections,context=*,host=*,name=*,type=DataSource",
        "type": "read"
    },
    "status": 200,
    "timestamp": 1696324668,
    "value": {
        "Catalina:class=javax.sql.DataSource,connectionpool=connections,context=/XXXXXX,host=localhost,name=\"jdbc/ZZZZZZ\",type=DataSource": {
            "AbandonedConfig": false,
            "BlockWhenExhausted": true,
            "BorrowedCount": 739850,
            "Closed": false,
            "CreatedCount": 36,
·
·
·

但现在我只想获取一个 JDBC 池的 maxIdle 属性(例如),并且只获取一个

HTTP 400 error code
:

# curl -k http://127.0.0.1:50147/jolokia/read/'Catalina:class=javax.sql.DataSource,connectionpool=connections,context=/XXXXXX,host=localhost,name=\"jdbc/ZZZZZZ\",type=DataSource"/maxIdle' -v
* About to connect() to 127.0.0.1 port 50147 (#0)
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 50147 (#0)
> GET /jolokia/read/Catalina:class=javax.sql.DataSource,connectionpool=connections,context=/XXXXXX,host=localhost,name=\"jdbc/ZZZZZZ\",type=DataSource"/maxIdle HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 127.0.0.1:50147
> Accept: */*
>
< HTTP/1.1 400
< Transfer-Encoding: chunked
< Date: Tue, 03 Oct 2023 09:20:59 GMT
< Connection: close
<
* Closing connection 0

我尝试了各种变体——重新排列关键字、删除引号和反斜杠...但只得到 400。

成功检索到其他值:

# curl -k http://127.0.0.1:50147/jolokia/read/'java.lang:type=Runtime/SystemProperties/java.version'
{"request":{"path":"java.version","mbean":"java.lang:type=Runtime","attribute":"SystemProperties","type":"read"},"value":"1.8.0_131","timestamp":1696325283,"status":200}

我做错了什么?

致以诚挚的问候

java jdbc jmx pool jolokia
1个回答
0
投票

我有一个类似的问题,看起来你没有使用正确的转义:

看看这个文档页面:

https://jolokia.org/reference/html/protocol.html#escape-rules

逃避/与!帮助我获得了我需要的指标。

© www.soinside.com 2019 - 2024. All rights reserved.