繁体   English   中英

WSO2 Api 管理器 3.2.0 PostgreSQL 问题

[英]WSO2 Api Manager 3.2.0 PostgreSQL issues

我正在尝试使用 WSO2 API Manager 3.2.0

我通过以下链接在 postgre 上配置它https://apim.docs.wso2.com/en/latest/install-and-setup/setup/setting-up-databases/changeing-default-databases/sharing-to-postgresql /#setting-up-postgresql

这 id 我的deployment.toml配置:

[database.apim_db]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/api_mgr_apim_db"
#hostname = "xxx.yyy.zz.ww"
#port = "5432"
#name = "api_mgr_apim_db"
username = "wso2apimgr"
password = "wso2apimgr"
driver = "org.postgresql.Driver"
pool_options.maxActive = "5"
pool_options.maxWait = "60000"
pool_options.minIdle = "1"
pool_options.maxIdle = "2"
pool_options.testOnBorrow = false
pool_options.validationQuery="SELECT 1; COMMIT"
pool_options.validationInterval="30000"
pool_options.defaultAutoCommit=false

[database.shared_db]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/api_mgr_shared_db"
#hostname = "xxx.yyy.zz.ww"
#port = "5432"
#name = "api_mgr_shared_db"
username = "wso2apimgr"
password = "wso2apimgr"
driver = "org.postgresql.Driver"
pool_options.maxActive = "5"
pool_options.maxWait = "60000"
pool_options.minIdle = "1"
pool_options.maxIdle = "2"
pool_options.testOnBorrow = false
pool_options.validationQuery="SELECT 1; COMMIT"
pool_options.validationInterval="30000"
pool_options.defaultAutoCommit=false

[database.local]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/api_mgr_shared_db"
#hostname = "xxx.yyy.zz.ww"
#port = "5432"
#name = "api_mgr_shared_db"
username = "wso2apimgr"
password = "wso2apimgr"
driver = "org.postgresql.Driver"
pool_options.maxActive = "5"
pool_options.maxWait = "60000"
pool_options.minIdle = "1"
pool_options.maxIdle = "2"
pool_options.testOnBorrow = false
pool_options.validationQuery="SELECT 1; COMMIT"
pool_options.validationInterval="30000"
pool_options.defaultAutoCommit=false

我将 postgreSQL 驱动程序放在 component/lib 目录中,并在我的数据库中执行了 postgre.sql 脚本

当我启动服务器时,我收到此错误:

TID: [-1234] [] [2021-01-19 18:22:10,328] ERROR {org.wso2.carbon.registry.core.internal.RegistryCoreServiceComponent} - Unable to create fixed remote mounts. org.wso2.carbon.registry.core.exceptions.RegistryException: An exception occurred while executing handler chain. null
    at org.wso2.carbon.registry.core.jdbc.handlers.HandlerManager.delete(HandlerManager.java:2653)
    at org.wso2.carbon.registry.core.jdbc.handlers.UserDefinedHandlerManager.delete(UserDefinedHandlerManager.java:214)
    at org.wso2.carbon.registry.core.jdbc.handlers.HandlerLifecycleManager.delete(HandlerLifecycleManager.java:443)
    at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.delete(EmbeddedRegistry.java:851)
    at org.wso2.carbon.registry.core.caching.CacheBackedRegistry.delete(CacheBackedRegistry.java:595)
    at org.wso2.carbon.registry.core.session.UserRegistry.deleteInternal(UserRegistry.java:879)
    at org.wso2.carbon.registry.core.session.UserRegistry.access$1100(UserRegistry.java:73)
    at org.wso2.carbon.registry.core.session.UserRegistry$12.run(UserRegistry.java:854)
    at org.wso2.carbon.registry.core.session.UserRegistry$12.run(UserRegistry.java:851)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.wso2.carbon.registry.core.session.UserRegistry.delete(UserRegistry.java:851)
    at org.wso2.carbon.registry.core.internal.RegistryCoreServiceComponent.setupMounts(RegistryCoreServiceComponent.java:299)
    at org.wso2.carbon.registry.core.internal.RegistryCoreServiceComponent.buildRegistryService(RegistryCoreServiceComponent.java:529)
    at org.wso2.carbon.registry.core.internal.RegistryCoreServiceComponent.activate(RegistryCoreServiceComponent.java:123)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
    at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
    at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
    at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
    at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
    at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
    at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
    at org.wso2.carbon.user.core.internal.Activator.startDeploy(Activator.java:73)
    at org.wso2.carbon.user.core.internal.BundleCheckActivator.start(BundleCheckActivator.java:61)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:842)
    at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:834)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1013)
    at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:365)
    at org.eclipse.osgi.container.Module.doStart(Module.java:598)
    at org.eclipse.osgi.container.Module.start(Module.java:462)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$1.run(ModuleContainer.java:1820)
    at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$2$1.execute(EquinoxContainerAdaptor.java:150)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1813)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1770)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1735)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1661)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
Caused by: java.lang.NullPointerException
    at org.wso2.carbon.registry.core.jdbc.handlers.builtin.MountHandler.delete(MountHandler.java:490)
    at org.wso2.carbon.registry.core.jdbc.handlers.HandlerManager.delete(HandlerManager.java:2629)
    ... 53 more

TID: [-1234] [] [2021-01-19 18:22:10,393]  INFO {org.wso2.carbon.registry.core.internal.RegistryCoreServiceComponent} - Registry Mode    : READ-WRITE
TID: [-1234] [] [2021-01-19 18:22:10,609]  INFO {org.wso2.carbon.metrics.impl.util.JmxReporterBuilder} - Creating JMX reporter for Metrics with domain 'org.wso2.carbon.metrics'
TID: [-1234] [] [2021-01-19 18:22:10,613]  INFO {org.wso2.carbon.metrics.impl.reporter.AbstractReporter} - Started JMX reporter for Metrics
TID: [-1234] [] [2021-01-19 18:22:12,800]  INFO {org.wso2.carbon.registry.indexing.solr.SolrClient} - Default Embedded Solr Server Initialized
TID: [-1234] [] [2021-01-19 18:22:13,216]  INFO {org.wso2.carbon.user.core.internal.UserStoreMgtDSComponent} - Carbon UserStoreMgtDSComponent activated successfully.
TID: [-1234] [] [2021-01-19 18:22:15,309]  INFO {org.wso2.carbon.identity.user.store.configuration.deployer.UserStoreConfigurationDeployer} - User Store Configuration Deployer initiated.
TID: [-1234] [] [2021-01-19 18:22:15,310]  INFO {org.wso2.carbon.identity.user.store.configuration.deployer.UserStoreConfigurationDeployer} - User Store Configuration Deployer initiated.
TID: [-1234] [] [2021-01-19 18:22:16,061]  INFO {org.wso2.carbon.websocket.transport.WebsocketTransportSender} - WSS Sender started
TID: [-1234] [] [2021-01-19 18:22:16,065]  INFO {org.apache.synapse.transport.passthru.PassThroughHttpSender} - Initializing Pass-through HTTP/S Sender...
TID: [-1234] [] [2021-01-19 18:22:16,096]  INFO {org.apache.synapse.transport.passthru.PassThroughHttpSender} - Pass-through HTTP Sender started...
TID: [-1234] [] [2021-01-19 18:22:16,097]  INFO {org.apache.synapse.transport.passthru.PassThroughHttpSSLSender} - Initializing Pass-through HTTP/S Sender...
TID: [-1234] [] [2021-01-19 18:22:16,262]  INFO {org.apache.synapse.transport.nhttp.config.ClientConnFactoryBuilder} - customSSLProfiles configuration is loaded from path: /opt/diomedee/wso2am-3.2.0/repository/resources/security/sslprofiles.xml
TID: [-1234] [] [2021-01-19 18:22:16,262]  INFO {org.apache.synapse.transport.nhttp.config.ClientConnFactoryBuilder} - HTTPS Loading custom SSL profiles for the HTTPS sender
TID: [-1234] [] [2021-01-19 18:22:16,432]  INFO {org.apache.synapse.transport.nhttp.config.ClientConnFactoryBuilder} - HTTPS Custom SSL profiles initialized for 1 servers
TID: [-1234] [] [2021-01-19 18:22:16,433]  INFO {org.apache.synapse.transport.passthru.PassThroughHttpSSLSender} - Pass-through HTTPS Sender started...
TID: [-1234] [] [2021-01-19 18:22:16,437]  INFO {org.wso2.carbon.websocket.transport.WebsocketTransportSender} - WS Sender started
TID: [-1234] [] [2021-01-19 18:22:16,454]  INFO {org.apache.synapse.transport.passthru.PassThroughHttpListener} - Initializing Pass-through HTTP/S Listener...
TID: [-1234] [] [2021-01-19 18:22:16,475]  INFO {org.apache.synapse.transport.passthru.PassThroughHttpMultiSSLListener} - Initializing Pass-through HTTP/S Listener...
TID: [-1234] [] [2021-01-19 18:22:16,632]  INFO {org.apache.synapse.transport.nhttp.config.ServerConnFactoryBuilder} - SSLProfile configuration is loaded from path: /opt/diomedee/wso2am-3.2.0/repository/resources/security/listenerprofiles.xml
TID: [-1234] [] [2021-01-19 18:22:16,827] ERROR {org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry} - Registry Exception occurred while executing the query org.wso2.carbon.registry.core.exceptions.RegistryException: PooledConnection has already been closed.
    at org.wso2.carbon.registry.core.jdbc.dataaccess.SQLQueryProcessor.executeQuery(SQLQueryProcessor.java:239)
    at org.wso2.carbon.registry.core.jdbc.queries.QueryProcessorManager.executeQuery(QueryProcessorManager.java:137)
    at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.executeQuery(EmbeddedRegistry.java:2299)
    at org.wso2.carbon.governance.api.util.GovernanceUtils.getDirectArtifactPath(GovernanceUtils.java:851)
    at org.wso2.carbon.governance.registry.extensions.handlers.MetaDataCacheHandler.clearPreFetchArtifact(MetaDataCacheHandler.java:72)
    at org.wso2.carbon.governance.registry.extensions.handlers.MetaDataCacheHandler.put(MetaDataCacheHandler.java:47)
    at org.wso2.carbon.registry.core.jdbc.handlers.HandlerManager.put(HandlerManager.java:2505)
    at org.wso2.carbon.registry.core.jdbc.handlers.HandlerLifecycleManager.put(HandlerLifecycleManager.java:958)
    at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.put(EmbeddedRegistry.java:705)
    at org.wso2.carbon.registry.core.caching.CacheBackedRegistry.put(CacheBackedRegistry.java:591)
    at org.wso2.carbon.registry.core.session.UserRegistry.putInternal(UserRegistry.java:840)
    at org.wso2.carbon.registry.core.session.UserRegistry.access$1000(UserRegistry.java:73)
    at org.wso2.carbon.registry.core.session.UserRegistry$11.run(UserRegistry.java:816)
    at org.wso2.carbon.registry.core.session.UserRegistry$11.run(UserRegistry.java:813)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.wso2.carbon.registry.core.session.UserRegistry.put(UserRegistry.java:813)
    at org.wso2.carbon.core.init.CarbonServerManager.populateConnectionProperties(CarbonServerManager.java:678)
    at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:450)
    at org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:305)
    at org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118)
    at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:973)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)

我在 postgreSQL 10 和 postgreSQL 13 上对此进行了测试,但是在这两种情况下,只要我启动服务器,我就会收到错误并且服务器无法启动。

有人可以告诉我如何解决这个问题吗?

安杰洛

更新

正如建议的那样,我通过对共享和用户使用分离的数据库来更改我的deployment.toml 现在我的deployment.toml是:

[database.apim_db]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/api_mgr_apim_db"
#hostname = "xxx.yyy.zz.ww"
#port = "5432"
#name = "api_mgr_apim_db"
username = "credentials"
password = "credentials"
driver = "org.postgresql.Driver"
validationQuery="SELECT 1"
pool_options.maxActive = "20"
pool_options.maxWait = "60000"
pool_options.minIdle = "1"
pool_options.maxIdle = "10"
#pool_options.testOnBorrow = false
#pool_options.validationQuery="SELECT 1; COMMIT"
pool_options.validationInterval="30000"
#pool_options.defaultAutoCommit=false

[database.shared_db]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/api_mgr_shared_db"
#hostname = "xxx.yyy.zz.ww"
#port = "5432"
#name = "api_mgr_shared_db"
username = "credentials"
password = "credentials"
driver = "org.postgresql.Driver"
validationQuery="SELECT 1"
pool_options.maxActive = "20"
pool_options.maxWait = "60000"
pool_options.minIdle = "1"
pool_options.maxIdle = "10"
#pool_options.testOnBorrow = false
#pool_options.validationQuery="SELECT 1; COMMIT"
pool_options.validationInterval="30000"
#pool_options.defaultAutoCommit=false

[database.local]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/api_mgr_carbon_db"
#hostname = "xxx.yyy.zz.ww"
#port = "5432"
#name = "api_mgr_shared_db"
username = "credentials"
password = "credentials"
driver = "org.postgresql.Driver"
validationQuery="SELECT 1"
pool_options.maxActive = "20"
pool_options.maxWait = "60000"
pool_options.minIdle = "1"
pool_options.maxIdle = "10"
#pool_options.testOnBorrow = false
#pool_options.validationQuery="SELECT 1; COMMIT"
pool_options.validationInterval="30000"
#pool_options.defaultAutoCommit=false

但现在我得到这个错误:

TID: [-1234] [accountrecoveryendpoint] [2021-01-20 11:47:19,186]  INFO {org.wso2.carbon.webapp.mgt.TomcatGenericWebappsDeployer} - Deployed webapp: StandardEngine[Catalina].StandardHost[localhost].StandardContext[/accountrecoveryendpoint].File[/opt/diomedee/wso2am-3.2.0/repository/deployment/server/webapps/accountrecoveryendpoint]
TID: [-1] [] [2021-01-20 11:47:32,227]  INFO {org.wso2.carbon.event.processor.manager.core.internal.CarbonEventManagementService} - Starting polling event receivers
TID: [-1] [] [2021-01-20 11:47:52,556]  WARN {org.wso2.carbon.application.deployer.internal.AppDeployerServiceComponent} - Waiting for required OSGi services: org.wso2.carbon.application.deployer.synapse.service.SynapseAppDeployerService,org.wso2.carbon.mediation.initializer.services.SynapseEnvironmentService,
TID: [-1] [] [2021-01-20 11:47:52,603]  WARN {org.wso2.carbon.core.internal.StartupFinalizerServiceComponent} - Waiting for required OSGi services: org.wso2.carbon.application.deployer.service.CappDeploymentService,org.wso2.carbon.server.admin.common.IServerAdmin,org.wso2.carbon.throttling.agent.ThrottlingAgent,
TID: [-1234] [] [2021-01-20 11:48:19,172] ERROR {org.wso2.carbon.registry.core.dataaccess.TransactionManager} - Failed to start new registry transaction. org.apache.tomcat.jdbc.pool.PoolExhaustedException: [pool-111-thread-19] Timeout: Pool empty. Unable to fetch a connection in 60 seconds, none available[size:20; busy:20; idle:0; lastwait:60000].
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:712)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:198)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:132)
    at org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCTransactionManager.beginTransaction(JDBCTransactionManager.java:83)
    at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.beginTransaction(EmbeddedRegistry.java:443)
    at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.get(EmbeddedRegistry.java:505)
    at org.wso2.carbon.registry.core.caching.CacheBackedRegistry.get(CacheBackedRegistry.java:175)
    at org.wso2.carbon.registry.core.session.UserRegistry.getInternal(UserRegistry.java:629)
    at org.wso2.carbon.registry.core.session.UserRegistry.access$400(UserRegistry.java:73)
    at org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:609)
    at org.wso2.carbon.registry.core.session.UserRegistry$5.run(UserRegistry.java:606)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.wso2.carbon.registry.core.session.UserRegistry.get(UserRegistry.java:606)
    at org.wso2.carbon.registry.indexing.AsyncIndexer$IndexingTask.createIndexDocument(AsyncIndexer.java:242)
    at org.wso2.carbon.registry.indexing.AsyncIndexer$IndexingTask.run(AsyncIndexer.java:210)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

TID: [-1234] [] [2021-01-20 11:48:19,179] ERROR {org.wso2.carbon.registry.indexing.AsyncIndexer} - Error while indexing. Resource at path "/_system/config/identity/questionCollection"could not be indexedorg.wso2.carbon.registry.core.exceptions.RegistryException: Failed to start new registry transaction.
TID: [-1234] [] [2021-01-20 11:48:19,190] ERROR {org.wso2.carbon.registry.core.dataaccess.TransactionManager} - Failed to start new registry transaction. org.apache.tomcat.jdbc.pool.PoolExhaustedException: [pool-111-thread-1] Timeout: Pool empty. Unable to fetch a connection in 60 seconds, none available[size:20; busy:20; idle:0; lastwait:60000].
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:712)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:198)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:132)
    at org.wso2.carbon.registry.core.jdbc.dataaccess.JDBCTransactionManager.beginTransaction(JDBCTransactionManager.java:83)
    at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.beginTransaction(EmbeddedRegistry.java:443)
    at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.getTags(EmbeddedRegistry.java:1540)

任何人,好心,为什么我会收到这个错误?

为避免混淆,为SHARED_DB + WSO2CARBON_DBAPIM_DB创建 2 个单独的数据库。

SHARED_DB存储 API Manager 相关数据, SHARED_DB存储注册表和用户管理数据。 默认情况下, WSO2CARBON_DB将是一个嵌入式 H2 数据库,无需将其更改为另一个数据库

例如: SHARED_DB --> shared_db APIM_DB --> apim_db CARBON_DB --> carbon_db

要为 shared_db 创建必要的表,请执行APIM_HOME//dbscripts/postgresql.sql的脚本。

要为 carbon_db 创建必要的表,请执行APIM_HOME//dbscripts/postgresql.sql的脚本。

请注意, APIM_HOME//dbscripts/postgresql.sql包含注册表和用户管理表。 所以我们使用相同的脚本。

要为 apim_db 创建必要的表,请执行APIM_HOME//dbscripts/apimgt/postgresql.sql的脚本。

在 APIM 中配置这些 DB 时,请确保您在配置元素中指定了正确的 DB 名称。

[database.apim_db]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/apim_db"

[database.shared_db]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/shared_db"

[database.local]
type = "postgre"
url = "jdbc:postgresql://xxx.yyy.zz.ww:5432/shared_db"

似乎同一个数据库指向SHARED_DBCARBON_DB 您可以将嵌入式 H2 数据库用于CARBON_DB(database.local) ,因为无需更改它。 可以尝试更改database.local以使用 H2 DB 或为 CARBON_DB 创建新数据库并启动包。

请参阅 [1] 中的Changing WSO2CARBON_DB to MySQL部分

[1] https://apim.docs.wso2.com/en/latest/install-and-setup/setup/setting-up-databases/changeing-default-databases/changeing-to-mysql/

关于新的问题,

ERROR {org.wso2.carbon.registry.core.dataaccess.TransactionManager} - Failed to start new registry transaction. org.apache.tomcat.jdbc.pool.PoolExhaustedException: [pool-111-thread-1] Timeout: Pool empty. Unable to fetch a connection in 60 seconds, none available[size:20; busy:20; idle:0; lastwait:60000].

看起来连接池已用尽。 您可以增加 maxActive 连接值并重新检查吗?

#set this to a higher value ex: 50 which is the default value APIM
pool_options.maxActive = "50" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM