Я пытаюсь подключиться, выполнить интеграционный тест, и для этого мне понадобится база данных H2 для воссоздания некоторых представлений.
Я использую эти свойства:
<bean id="internalXaDataSource" class="org.h2.jdbcx.JdbcDataSource">
<property name="URL" value="jdbc:h2:./target/testing/h2db/#{randomUUID1.toString()}/:testdb;MODE=MSSQLServer"/>
<property name="description" value="#{randomUUID1.toString()}jdbcXa"/>
<property name="user" value="sa"/>
<property name="password" value=""/>
</bean>
<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop">
<constructor-arg>
<array>
<value>-tcp</value>
<value>-tcpAllowOthers</value>
<value>-tcpPort</value>
<value>8043</value>
</array>
</constructor-arg>
</bean>
Я пытался подключиться несколькими способами:
Использование отладчика для получения сгенерированного URL
затем подключиться к нему с помощью URL-адреса соединения jdbc, например:
JDBC: h2: ./ цель / тестирование / h2db / # 3434-sdfjsd9o3849-df34 /: TESTDB; MODE = MSSQLServer
У меня успешное соединение, но БД пуста, таблицы не отображаются. Однако использование информационной схемы для получения списка схем в базе данных показывает, что база данных testdb существует.
Через tcp сервер
Я пробовал несколько разных URL, но ни один из них не подключился. например,
JDBC: h2: TCP: // локальный: 8043 / TESTDB: общественности; LOCK_MODE = 0
JDBC: h2: TCP: // локальный: 8043 /: TESTDB; LOCK_MODE = 0
Это хуже - не удается подключиться - просто зависает.
Изменение базового источника данных для запуска на порту
<bean id="internalXaDataSource" class="org.h2.jdbcx.JdbcDataSource" depends-on="h2Server">
<property name="URL" value="jdbc:h2:tcp://localhost:8043/mem:public;MODE=MSSQLServer"/>
<property name="description" value="#{randomUUID1.toString()}jdbcXa"/>
<property name="user" value="sa"/>
< property name="password" value=""/>
</bean>
Это также просто зависает при попытке подключения.
Можете ли вы объяснить, что я делаю не так?
Спасибо