I am trying to upgrade to JBoss 7; however, my datasource is not creating a connection. I did not deploy any WAR files. I am testing the connection by using the admin console. In standalone.xml, I configured the datasource as follows:
<subsystem xmlns="urn:jboss:domain:datasources:1.0">
<datasources>
<datasource jta="false" jndi-name="java:jboss/projectDS" pool-name="projectDS" enabled="true">
<connection-url>jdbc:oracle:thin:#mcc-67-150.usae.ABC.com:1521:test</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<driver>ojdbc6</driver>
<security>
<user-name>XXX</user-name>
<password>XXX</password>
</security>
</datasource>
<drivers>
<driver name="ojdbc6" module="com.oracle" />
</drivers>
</datasources>
</subsystem>
The ojdbc6.jar driver is in the following folder %JBOSS_HOME%\modules\com\oracle\main. The entry in my module.xml reads as follows:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
The error that I receive in my server log when I test the connection from the admin console is:
07:47:11,863 WARN [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool]
(HttpManagementService-threads - 4) IJ000604: Throwable while attempting to get
a new connection: null: javax.resource.ResourceException: Could not create conne
ction
at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLo
calManagedConnection(LocalManagedConnectionFactory.java:277) [ironjacamar-jdbc-1
.0.9.Final.jar:1.0.9.Final]
Thanks in advance!
Deploy the oracle driver jar to jboss from the console. Its something like localhost:9990/console with credential test/test123
From the datasource option, check whether you can see your datasource java:jboss/hqiis over there or not. If not, try to create the datasource from the console instead of configuring through xml.
Also check the data source status from the jboss-cli:
a. From command prompt, enter into JBOSS_HOME\bin
b. Type connect YOUR_IP:YOUR_PORT (example 192.169.1.10:9999)
c. Type this to see whether your datasource is available or not:
/subsystem=datasources/data-source=hqiis:test-connection-in-pool
You should see a msg like below if you are having a configured datasource named hqiis
connection-in-pool
{
"outcome" => "success",
"result" => [true]
}
Related
I'm new to the JBoss application server and I tried to add a datasource for an Oracle db in JBoss EAP6.3. But I am getting the error below and seeing error while 'Testing a db connection in server'.
Please let me know if I have missed something.
Step 1-> Added below datasource in standalone.xml file
Step 2-> Created a module.xml file and placed under \modules folder as com\oracle\main
Here is my module.xml file
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Step 3-> Copied a ojdbc6.jar file in the com\oracle\main location.
Step 4-> Started the server by standalone.bat file
<datasource jndi-name="java:jboss/datasources/OracleDS" pool-name="OracleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:#localhost:1521:XS</connection-url>
<driver>oracle</driver>
<security>
<user-name>system</user-name>
<password>system</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle">
<xa-datasource-class>oracle.jdbc.driver.OracleDriver</xa-datasource-class>
</driver>
</drivers>
Error on console:
Unexpected HTTP response: 500
Request
{
"address" => [
("subsystem" => "datasources"),
("data-source" => "OracleDS")
],
"operation" => "test-connection-in-pool"
}
Response
Internal Server Error
{
"outcome" => "failed",
"failure-description" => "JBAS010440: failed to invoke operation: JBAS010447: Connection is not valid",
"rolled-back" => true
}
please help me out how to create a connection ,
Thanks in advance
Place your ojdbc6.jar in $JBOSS_HOME/modules/system/layers/base/oracle/jdbc/main/ along with your module.xml.
The path where you have placed your ojdbc6.jar and module.xml is not
correct.
It should be modules/system/layers/base/com/oracle/main
Also define the data-source definition like:-
<datasource jndi-name="java:jboss/datasources/OracleDS" pool-name="OracleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:oracle:thin:#localhost:1521:XS</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<driver>oracle</driver>
<security>
<user-name>system</user-name>
<password>system</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle"/>
</driver>
</drivers>
I am trying to configure a MariaDB datasource on Wildfly. This seems like it should be a simple operation, but I can't seem to get the datasource module to load properly. I have added the maria-java-client-1.1.8.jar archive and a module.xml file to the wildfly-8.2.0.Final/modules/com/mariadb/main directory. The module.xml file is as follows:
<module xmlns:"urn:jboss:module:1.1" name="com.mariadb">
<resources>
<resource-root path="mariadb-java-client-1.1.8.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
I have also added a driver entry to the standalone.xml file as follows:
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="mariadb" module="com.mariadb"/>
</drivers>
</datasources>
</subsystem>
Note that I have only included the driver entry for now. I will add the datasource entry after I get the module to load properly.
Now when I startup the server I get the following error:
14:14:46,570 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 26) JBAS014613: Operation ("add") failed - address: ([
("subsystem" => "datasources"),
("jdbc-driver" => "mariadb")
]) - failure description: "JBAS010441: Failed to load module for driver [com.mariadb]"
According to everything that I have read, this is the proper way to configure the driver, but it is not working for me. Does anyone know what I am doing wrong?
Thanks in advance for your help!
The first line of your module.xml has a typo (you use a colon instead of equals in xmlns=...):
Your version:
<module xmlns:"urn:jboss:module:1.1" name="com.mariadb">
Correct version:
<module xmlns="urn:jboss:module:1.3" name="com.mariadb">
im trying to create a new datasource and "lookup" from java code.
First i created folder, jboss-as-7.1.0.Final\modules\com\mysql\main and copy to there 2 files.
mysql-connector-java-5.1.14-bin and module.xml
My module.xml contains
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.14-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
Second i added in file standalone.xml,this..
<datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://127.0.0.1:3306/myTable</connection-url>
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
</datasource>
<drivers>
<driver name="mysql" module="com.mysql">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
And last, i tried to call it from java code like this:
DataSource ds = (DataSource) ctx.lookup("jboss/datasources/MySqlDS");
connection = ds.getConnection();
But got this error..
javax.naming.NameNotFoundException: jboss/datasources/MySqlDS -- service jboss.naming.context.java.jboss.datasources.MySqlDS
Anyway,when i started my jboss server i got and error,too
New missing/unsatisfied dependencies:
service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.data-source.java:/MySqlDS]
Please try using
DataSource ds = (DataSource) ctx.lookup("java:jboss/datasources/MySqlDS");
It's probably happened because the Data Source is not configured properly. I had a similar issue but when I configured it using JBoss Admin Console, it worked. Also try to check if you have .jar extension in your module.xml.
Try following this link step by step. It works perfectly.
I'm getting this error:
org.quartz.JobPersistenceException: Couldn't store job: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB [See nested exception: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1103)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$3.execute(JobStoreSupport.java:1042)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$40.execute(JobStoreSupport.java:3670)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3742)
at org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:90)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInLock(JobStoreSupport.java:3666)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1030)
at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:743)
at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:243)
at com.akbank.bsa.core.ApplicationStartup.run(ApplicationStartup.java:66)
at com.akbank.bsa.core.ApplicationStartup.initialize(ApplicationStartup.java:24)
at com.akbank.bsa.listener.Startup.contextInitialized(Startup.java:17)
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850)
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB
at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.writeDataToBlob(OracleDelegate.java:646)
at org.quartz.impl.jdbcjobstore.oracle.OracleDelegate.insertJobDetail(OracleDelegate.java:207)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1097)
... 19 more
Using:
Jboss AS 7.1.1
Java 1.6
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
ojdbc6.jar Implementation-Version: 11.2.0.2.0
quartz-2.1.6
What could be the problem?
Removing ojdbc6.jar from the classpath and adding JBoss module (ojdbc6 module) as dependency solved the issue.
We found elegant solution to this problem. it worked.
We need to add oracle module in global-modules as below.
<subsystem xmlns="urn:jboss:domain:ee:1.1">
<global-modules>
<module name="com.oracle" slot="main"/>
</global-modules>
<spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
</subsystem>
This is worked for me ;
<subsystem xmlns="urn:jboss:domain:datasources:7.0">
<datasources>
<datasource jndi-name="*******" pool-name="****" enabled="true" use-java-context="true" statistics-e$
<connection-url>******</connection-url>
<driver>oracle</driver>
<security>
<user-name>***</user-name>
<password>***</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</driver>
</drivers>
</datasources>
</subsystem>
.
.
.
<subsystem xmlns="urn:jboss:domain:ee:6.0">
.
.
.
<global-modules>
<module name="com.oracle" slot="main"/>
</global-modules>
.
.
.
</subsystem>
Successfully solved the same issue for JBoss EAP 6. The main idea is the same - remove jar from war (if it was there) and let the app server to provide it. The details are below.
1) Added WEB-INF/jboss-deployment-structure.xml:
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="com.oracle" />
</dependencies>
</deployment>
</jboss-deployment-structure>
2) Defined jboss\eap640\modules\system\layers\base\com\oracle\main\module.xml
<module xmlns="urn:jboss:module:1.1" name="com.oracle">
<resources>
<resource-root path="ojdbc7.jar"/>
</resources>
<dependencies>
...
</dependencies>
</module>
3) Put ojdbc7.jar into jboss\eap640\modules\system\layers\base\com\oracle\main.
I'm using Jboss AS 7.1.1.final and I'm trying to add an oracle Datasource:
<datasource jndi-name="java:jboss/datasources/DefaultDS"
pool-name="DefaultDS"
enabled="true"
use-java-context="true">
<connection-url>jdbc:oracle:oci#TNS_NAME</connection-url>
<driver>oracle</driver>
<security>
<user-name>username</user-name>
<password>pwd</password>
</security>
</datasource>
And the driver:
<driver name="oracle" module="com.oracle.ojdbc">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
But when I start the server I get:
JBAS014775: New missing/unsatisfied dependencies:
service jboss.jdbc-driver.oracle (missing) dependents: [service jboss.data-source.java:jboss/datasources/DefaultDS]
I have a module under modules/com/oracle/ojdbc/main:
<module xmlns="urn:jboss:module:1.0" name="com.Oracle.ojdbc">
<resources>
<resource-root path="ojdbc6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
and of course the jar is there.
Can someone please tell me what am I doing wrong here?
Add this to define driver: for xa datasource
<driver name="oracleDriver" module="com.oracle.ojdbc">
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<xa-datasource-class>oracle.jdbc.xa.OracleXADataSource</xa-datasource-class>
</driver>
for non-xa-------
<driver name="oracleDriver" module="com.oracle.ojdbc">
<driver-class>oracle.jdbc.OracleDriver</driver-class>
</driver>
Got the answer:
In the drivers section, I defined the driver as sitting in module "com.oracle.ojdbc" but the module itself is actually defined with capital 'O' in 'Oracle' so it should be "com.Oracle.ojdbc"
Add this to define driver: for xa datasource
<driver name="oracleDriver" module="com.oracle.ojdbc">
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<xa-datasource-class>oracle.jdbc.xa.OracleXADataSource
for non-xa-------
<driver name="oracleDriver" module="com.oracle.ojdbc">
<driver-class>oracle.jdbc.OracleDriver</driver-class>
</driver>
Path for the ojdbc jar in my case was : D:\ProgramFiles\JBoss6.4\modules\com\oracle\jdbc7\main where D:\ProgramFiles\JBoss6.4\ is the JBOSS HOME directory.
in the main folder, need to have following files.
ojdbc7.jar
module.xml
Entry for Module would look like below:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.oracle.jdbc7">
<properties>
<property name="jboss.api" value="unsupported"/>
</properties>
<resources>
<resource-root path="ojdbc7.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
</dependencies>
</module>
You can define datasource from admin interface, find good tutorial below
http://middlewaremagic.com/jboss/?p=350