Collective Intelligence

[jBoss 6.3-eap] SQL Server jdbc library 등록 본문

개발/jBoss

[jBoss 6.3-eap] SQL Server jdbc library 등록

유경파 2016. 4. 1. 14:10

JAVA로 만든 어플리케이션에 DB는 SQL Server를 쓰는 서버를 jBoss에 deploy 하다보니 설정해줄 것이 좀 더 있었다.

무심코 war만 올려서 돌렸더니 DB 접속이 되다가 안되다가 이상해서 알아보니 SQL Server를 쓸 경우에는 따로 jdbc 라이브러리를 업로드 해야 한다.


일단 사용하는 sqljdbcxx.jar 파일을 받은 다음에 아래 경로로 이동한다.


jBoss_HOME/modules/system/layers/base/com



여기로 이동하면 다음과 같은 폴더들이 있다. (sqlserver 폴더는 만들어야 할 폴더이다.)



여기서 h2database폴더를 카피해서 sqlserver라는 이름으로 바꾼다.

그리고 sqlserver 폴더로 들어가면 h2라는 폴더가 있는데 그 폴더 안에 내용을 복사한 후에 h2 폴더를 지운다.

그러면 폴더 구조가 sqlserver/main/ 이렇게 될 것이고 main 폴더 안에 h2-13xxx 어쩌고 하는 .jar 파일과 module.xml 파일 두개가 남게된다.

여기서 h2-13xxx .jar 파일을 지우고 sqljdbcxx.jar 를 올린다.






자 이제 module.xml 을 손봐야 한다.

기존 h2 관련 설정을 SQL Server로 바꾸면 된다.




 <module xmlns="urn:jboss:module:1.1" name="com.microsoft">
    <resources>
        <resource-root path="sqljdbc42.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>



이제 standalone.xml에 위의 설정을 적용해주면 된다.


jBoss_Home/standalone/configuration


저기서 standalone.xml을 열어 <datasources> 부분에 driver를 추가하면 된다.




          

       <datasources>
           <datasource jndi-name="java:/MSSQLDS" pool-name="MSSQLDS" enabled="true">
               <connection-url>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test</connection-url>
               <driver>sqlserver</driver>
               <security>
                   <user-name>test</user-name>
                   <password>test1234</password>
               </security>
               <validation>
                  <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
                   <background-validation>true</background-validation>
               </validation>
           </datasource>
           <drivers>
               <driver name="sqlserver" module="com.microsoft">
                   <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
               </driver>
           </drivers>
       </datasources>



여기까지 해주면 jBoss에서도 SQL Server가 잘 작동한다.