私はjdbcコマンドの構文を使って決して行ったことがありませんOps4J Wiki On Datasource creationのガイドに従っています。なぜなら、この方法は単なるJava開発者だけでなく簡単に変更できる簡単なテキストファイルを作成するからですトラブルシューティングを行います。
私の答えにリンク腐敗をさせないために、ここで手順を概説します。
次の命名規則org.ops4j.datasource-give_your_datasource_a_name.cfg
を使用して、/ servicemixhome/etcにデータソース設定ファイル(シンプルテキストファイル)を作成します。
osgi.jdbc.driver.class = com.mysql.jdbc.Driver
databaseName=dhData
user=foo
url=jdbc:mysql://192.199.199.199:3306/dhData
password=somepassword
dataSourceName=myDSName
あなたはops4j必要な機能をインストールしていることを確認してください:
feature:install pax-jdbc-mysql pax-jdbc-config
さて、次を使用してデータソースをリスト設定ファイルで
は、適切な設定を行う鉱山の例は次のようになります構文:
[email protected]()> service:list javax.sql.DataSource
これは、以下のリストをご覧ください。
あなたは、データソースは、次の構文でblueprint.xmlでのOSGiフィルターをusign参照することができます。この時点で
[javax.sql.DataSource]
----------------------
osgi.jdbc.driver.class = com.mysql.jdbc.Driver
databaseName=dhData
user=foo
url=jdbc:mysql://192.199.199.199:3306/dhData
password=somepassword
dataSourceName=myDSName
Provided by :
OPS4J Pax JDBC Config (216)
:
<reference filter="(&(objectClass=javax.sql.DataSource)(dataSourceName=myDSName))" id="myData" interface="javax.sql.DataSource"/>
次にあなたが行うことができます例えば、Beanのプロパティとしてこれを参照します
<bean class="foo.bar" id="ImsCbrEventsBean">
<property name="dataSource" ref="myData"/>
</bean>
これは、データベースへの単なる接続を作成し、実際に接続プールを作成することに注意してください。
これは、pax-jdbc-pool-dbcp2機能またはその他の接続プールをインストールすることで実行できますが、一度に1つだけ使用し、データソース構成ファイルを変更して、以下の例のような適切な情報を持ちます。
osgi.jdbc.driver.name = mysql
databaseName=dhData
user=foo
url=jdbc:mysql://192.199.199.199:3306/dhData
password=somepassword
dataSourceName=myDSName
jdbc.pool.maxTotal=32
jdbc.pool.blockWhenExhausted=true
jdbc.pool.lifo=false
jdbc.pool.maxIdle=24
jdbc.pool.maxWaitMillis=5000
jdbc.pool.minEvictableIdleTimeMillis=1800000
jdbc.pool.minIdle=16
jdbc.pool.numTestsPerEvictionRun=3
jdbc.pool.softMinEvictableIdleTimeMillis=-1
jdbc.pool.testOnBorrow=true
jdbc.pool.testOnCreate=true
jdbc.pool.testOnReturn=true
jdbc.pool.testWhileIdle=true
jdbc.pool.timeBetweenEvictionRunsMillis=3600000
osgi.jdbc.driver.nameとosgi.jdbc.driver.classは決して使用しないでください。これらのうちの1つだけを使用してください。 –
ありがとう、 私は実際にconfigファイルを使って同じようにしました。無効なJNDI名を入力すると、別のメッセージが表示されるため、サービスを確認でき、ラクダはデータソースを見つけます。あなたのフィルタは私のものと少し違って見えますが、その構文を試してみると同じエラーが出ます。 データソースをBeanに渡すとうまくいくと思っていますが、この場合はJDBCコンポーネントを使いたいと思います。 私は青写真に直接データソースを定義しながらラクダコンポーネントをうまく使いましたが、それを避けたいと思います。 @ChristianSchneiderが合意した。 – user5188655
結膜炎でのコピーと貼り付けもお勧めしません。 – Namphibian