|
安装配置网管软件OpenNMS时遇到pgsql问题,前面OpenNMS抱怨java试图创建非法数组,后面pgsql抱怨前端协议不支持,让我很难断案。
我的系统是RedHat8,最终目的是要建立OpenNMS网管服务。
下载的OpenNMS是opennms-1.2.8-1_rhl8的rpm包,PgSQL是操作系统自带的postgresql-7.2.2-1版本,
按照pgsql的手册,依据自己RH8中自带pgsql各文件夹所在的路径,配置好pgsql后,启动它:
bash-2.05b$ pg_ctl start
postmaster successfully started
bash-2.05b$ 调试: database system was shut down at 2006-10-11 17:32:57 CST
调试: checkpoint record is at 0/109924
调试: redo record is at 0/109924; undo record is at 0/0; shutdown TRUE
调试: next transaction id: 89; next oid: 16556
调试: database system is ready
验证一下是否可以连接:
bash-2.05b$ createdb postgres
CREATE DATABASE
bash-2.05b$ psql -l
数据库列表
名字 | 所有者 | 编码
-----------+----------+-----------
postgres | postgres | SQL_ASCII
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
template2 | postgres | SQL_ASCII
(4 行)
bash-2.05b$ psql
欢迎来到 psql, PostgreSQL 的交互终端.
键入: \copyright 获取发布信息
\h 获取 SQL 命令的帮助
\? 获取内部反斜扛命令的帮助
\g 或者以分号结尾执行查询
\q 退出
postgres=# \q
pgsql数据库连接成功。然后就在这里不管了,开启另一个终端窗口,install我的opennms:
[root@localhost root]# $OPENNMS_HOME/bin/install -disU
这是OpenNMS安装后,使用前的一个步骤,为OpenNMS配置pgsql数据库,opennms手册上有详细说明的,输入命令后,返回了一个不幸的好消息(比较长):
==============================================================================
OpenNMS Installer Version $Id: Installer.java 3056 2006-03-26 19:39:16Z djgregor $
==============================================================================
Configures PostgreSQL tables, users, and other miscellaneous settings.
Exception in thread "main" org.postgresql.util.PSQLException: Something unusual has occured to cause the driver to fail. Please report this exception: Exception: java.lang.NegativeArraySizeException
Stack Trace:
java.lang.NegativeArraySizeException
at org.postgresql.core.PGStream.Receive(PGStream.java:369)
at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnectionV3(AbstractJdbc1Connection.java:337)
at org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJdbc1Connection.java:214)
at org.postgresql.Driver.connect(Driver.java:139)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.opennms.install.Installer.databaseConnect(Installer.java:613)
at org.opennms.install.Installer.install(Installer.java:195)
at org.opennms.install.Installer.main(Installer.java:2450)
End of Stack Trace
at org.postgresql.Driver.connect(Driver.java:159)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.opennms.install.Installer.databaseConnect(Installer.java:613)
at org.opennms.install.Installer.install(Installer.java:195)
at org.opennms.install.Installer.main(Installer.java:2450)
比较长,总之,没有成功,给出的信息指向java的什么东西,google这条信息,得到如下的解释:
类 NegativeArraySizeException
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.NegativeArraySizeException
所有已实现的接口:
Serializable
public class NegativeArraySizeException
extends RuntimeException
如果应用程序试图创建大小为负的数组,则抛出该异常。
从以下版本开始:
JDK1.0
另请参见:
序列化表格
我没有细细学过java,只是细细学过标准C,用过一些C++的东西,所以对上面这段信息暂时没有头绪。
暂时按下不表,返回刚才配置pgsql的终端,豁然发现出现一个致命错误的提示,这就肯定是和OpenNMS没有配置成功直接相关的重要信息了:
致命错误 1: unsupported frontend protocol
不支持的前端协议,这个是怎么回事呢?前面是OpenNMS抱怨java试图创建非法数组,后面是pgsql抱怨前端协议不支持,这到底是什么问题呢? |
|