Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Artemis ActiveMQ can';t连接到Postgres_Postgresql_Activemq Artemis - Fatal编程技术网

Postgresql Artemis ActiveMQ can';t连接到Postgres

Postgresql Artemis ActiveMQ can';t连接到Postgres,postgresql,activemq-artemis,Postgresql,Activemq Artemis,Ubuntu 16.04 Xenial Artemis ActiveMQ 2.4.0(本地主机) PGADMIN(docker)+postgres(docker) 我可以通过pgadmin连接到base,但artemis不能 我想将Artemis连接到我的存储页面库,但在开始时,ia遇到了一个问题: 2018-04-24 14:57:58,534 INFO [org.apache.activemq.artemis.core.server] AMQ221000: live Message Bro

Ubuntu 16.04 Xenial Artemis ActiveMQ 2.4.0(本地主机) PGADMIN(docker)+postgres(docker) 我可以通过pgadmin连接到base,但artemis不能 我想将Artemis连接到我的存储页面库,但在开始时,ia遇到了一个问题:

2018-04-24 14:57:58,534 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is starting with configuration Broker Configuration (clustered=false,jdbcDriverClassName=org.postgresql.Driver,jdbcConnectionUrl=jdbc:postgresql://localhost:5432/postgres?user=super&password=super,messageTableName=MESSAGE_TABLE,bindingsTableName=BINDINGS_TABLE,largeMessageTableName=LARGE_MESSAGES_TABLE,pageStoreTableName=PAGES_TABLE,)
2018-04-24 14:57:58,566 ERROR [org.apache.activemq.artemis.core.server] AMQ224000: Failure in initialisation: java.lang.IllegalStateException: The maximum name size for the page store table prefix is 10 characters: THE PAGING STORE CAN'T START
这是我的配置: broker.xml

      <store>
     <database-store>
        <jdbc-connection-url>jdbc:postgresql://192.168.20.173:5432/postgres?user=super&amp;password=super</jdbc-connection-url>
        <page-store-table-name>PAGES_TABLE</page-store-table-name>
        <bindings-table-name>BINDINGS_TABLE</bindings-table-name>
        <message-table-name>MESSAGE_TABLE</message-table-name>
        <large-message-table-name>LARGE_MESSAGES_TABLE</large-message-table-name>
        <jdbc-driver-class-name>org.postgresql.Driver</jdbc-driver-class-name>
     </database-store>
  </store>

jdbc:postgresql://192.168.20.173:5432/postgres?user=super&密码=超级
页数表
绑定表
消息表
大消息表
org.postgresql.Driver
默认情况下,Artemis将所有页面存储到本地目录,而不是基本目录


如何解决此问题?

相关错误消息描述了此问题:

The maximum name size for the page store table prefix is 10 characters
查看代码,此处的“页面存储表前缀”基于代理的配置。在您的情况下,您正在使用:

PAGES_TABLE
这是11个字符。此处的默认值为:

PAGE_TABLE
这是10个字符。如果您在这里使用的值是10个字符或更少,那么我希望错误消失


这里的问题是,一些RDBMS(例如Oracle)最多只能支持30个字符的表名,
页面存储表名实际上只是表名的前缀,表名后面附加了20个字符的UUID。因此,页面存储表名称必须为10个字符或更少,以说明UUID,并且仍然保持在30个字符的限制下。

相关错误消息描述了该问题:

The maximum name size for the page store table prefix is 10 characters
查看代码,此处的“页面存储表前缀”基于代理的配置。在您的情况下,您正在使用:

PAGES_TABLE
这是11个字符。此处的默认值为:

PAGE_TABLE
这是10个字符。如果您在这里使用的值是10个字符或更少,那么我希望错误消失

这里的问题是,一些RDBMS(例如Oracle)最多只能支持30个字符的表名,
页面存储表名实际上只是表名的前缀,表名后面附加了20个字符的UUID。因此,
页面存储表名称
必须为10个字符或更少,以说明UUID,并且仍然保持在30个字符的限制下。

正如其他人(例如Justin)已经提到的,代码和代码注释之间似乎不一致,但幸运的是,相关的JIRA报告了一个更明确的描述,解释了这一限制:

阿耳特弥斯-1084 Oracle12C的表名大小限制为30个字符。使用分页和大于10个字符的表名时。在页面UUID大小超过20个字符之前,Artemis可以正常工作。然后开始无法翻页

综上所述,完整的页面表名称如下所示:

page-store-table-name + UUID binary encoded form
Oracle 12c只允许一个表名总共包含30个字符,这意味着:

page-store-table-name <= 30 - UUID binary encoded form length
我所看到的问题是,这种限制不应该对任何DBMS强制执行,而应该只对oracle 12c强制执行。

正如其他人(例如Justin)已经提到的那样,代码和代码注释之间似乎不一致,但幸运的是,相关的JIRA报告了一个更明确的描述,解释了这种限制:

阿耳特弥斯-1084 Oracle12C的表名大小限制为30个字符。使用分页和大于10个字符的表名时。在页面UUID大小超过20个字符之前,Artemis可以正常工作。然后开始无法翻页

综上所述,完整的页面表名称如下所示:

page-store-table-name + UUID binary encoded form
Oracle 12c只允许一个表名总共包含30个字符,这意味着:

page-store-table-name <= 30 - UUID binary encoded form length
我看到的问题是,这种限制不应该对任何DBMS强制执行,而应该只对oracle 12c强制执行