【发布时间】:2014-04-11 17:03:54
【问题描述】:
我正在尝试集成 BAM Server(2.4.0) 和 API Management(1.6),但出现错误:
TID:[0] [AM] [2014-04-11 08:45:17,838] 错误 {org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject} - 错误 在为 ProviderAPIUsage 调用 APIUsageStatisticsClient 时 {org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject} org.wso2.carbon.apimgt.usage.client.exception.APIMgtUsageQueryServiceClientException: BAM 数据源尚未初始化。确保数据源 在 APIUsageTracker 配置中正确配置。在 org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.queryFirstAccess(APIUsageStatisticsClient.java:1693) 在 org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.getFirstAccessTime(APIUsageStatisticsClient.java:1675) 在 org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject.jsFunction_getFirstAccessTime(APIProviderHostObject.java:2911) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
我的数据源定义为
<datasource>
<name>WSO2AM_STATS_DB</name>
<description>The datasource used for getting statistics to API Manager</description>
<jndiConfig>
<name>jdbc/WSO2AM_STATS_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:C:/esb/wso2bam-2.4.0/repository/database/APIMGTSTATS_DB;AUTO_SERVER=TRUE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
另外,我注意到 BAM 服务器之后会抛出以下错误
错误 {org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBOperation} - 无法将数据写入数据库 org.h2.jdbc.JdbcSQLException: NULL 不允许用于“CONSUMERKEY”列; SQL 语句:INSERT INTO API_REQUEST_SUMMARY (版本,consumerkey,max_request_time,api_version,时间,主机名,上下文,日,年,月,total_request_count,userid,apip ublisher,api) 值 (?,?,?,?,?,?,?,?,?,?,?,?,?,?) [90006-140]
我已按照以下说明进行操作 https://docs.wso2.org/display/AM160/Publishing+API+Runtime+Statistics
任何帮助将不胜感激
【问题讨论】: