2012-06-25 4 views
0

WSO2 ESB 4.0.3을 사용 중입니다. WSO2 데이터 서비스 기능을 설치했으며 DS를 만들었습니다.WSO2 ESB - 데이터 서비스 서버 기능 - 데이터 소스를 사용하여 데이터 소스를 즉시 교체하는 방법

"데이터 소스"를 정의 할 수있는 관리 UI 아래의 "구성"탭 아래에 ESB에 기능이 있습니다.

내 질문에 새로운 데이터 서비스를 만드는 중입니다. ESB에서 구성한이 "데이터 소스"를 사용할 수 없습니다. 우리는 DEV/TEST/UAT/PROD 환경이 다릅니다. 각 환경에는 동일한 데이터 서비스에 대해 서로 다른 데이터베이스가 있습니다.

현재 새 XML을 가리키고 배포하도록 DS XML 파일을 수동으로 변경했습니다.

ESB에서 구성된 DB를 가리켜 DS를 위해 DS를 변경하는 방법이 있습니까?

감사

2012년 7월 1일 ABhijit

- 주십시오에 대한 모든 업데이 트? 이것은 큰 그룹의 Apple POC입니다. WSO2가 성공한다면 애플이 구현할 수 있을까요?

답변

0

이미 사용중인 것과 동일한 ESB 인스턴스에 dataservices 기능을 설치 한 경우 "구성> 데이터 소스"메뉴를 통해 만든 데이터 소스를 사용할 수 있어야합니다. 위의 옵션을 통해 특정 데이터 소스를 만들면 데이터 소스를 사용하는 다른 모든 설치된 기능에서 볼 수 있기 때문입니다. 그러나 ESB와 DSS가 두 개의 상자에 있다면 ESB가 노드를 동일한 레지스트리에 마운트하지 않으면 ESB가 DSS 노드에 표시되지 않는다고 가정합니다. 그러나이 기능도 다음 곧 출시 될 릴리스에 포함될 예정입니다.

그러나 귀하의 요구 사항을 충족시키기 위해 다음 패턴을 제안합니다. 모든 환경의 DEV/TEST/UAT/PROD에서 ESB에 DataServices 기능을 설치했다고 가정합니다. 그렇다면 "동일한 이름"을 사용하여 데이터 소스를 생성 할 수 있습니다 (예 : "구성> 데이터 소스"메뉴를 통해 "ds1"이라는 이름의 데이터 소스가 4 개의 환경 모두에서 생성 된 것으로 가정). 이러한 각 환경에서 사용합니다. 그런 다음 아래와 같이 DBS (dataservice discripters) 내부에 생성 된 데이터 소스를 가리킬 수 있습니다. 당신이 당신과 같은 환경에서는 DataService의를 배포 할 때마다 해당 단계로 완료되면,

<data name="TestDataService"> 
    <config id="default"> 
     <property name="carbon_datasource_name">ds1</property> 
    </config> 
    ..... 
</data> 

수동으로 데이터베이스 구성을 다시 구성 할 필요없이 관련 데이터 소스를 가리에 관련 데이터베이스 구성을 특정한다 각 환경은 런타임시 동적으로로드됩니다.

위의 설명이 도움이되기를 바랍니다.

감사합니다, Prabath

+0

, 당신에게 Prabath를 대단히 감사합니다. 한 가지 더 질문하지만, 필자가 생각하기에 XML 데이터를 내보낼 수는 없습니다. WSO2 ESB 4.0.3의 디렉토리 구조에는 나타나지 않습니다. 나는 그것이 레지스트리에 저장되어 있다고 생각한다. 그 이해가 맞습니까? 또한 나는 이클립스 플러그인에서도 이것을 만들 수 없다. 그래서 이것을 자동차 파일의 일부로 배포 할 수는 없습니다. 여기 주변에 어떤 일이 있습니까? 도움에 다시 한번 감사드립니다. Abhijit –

+0

네가 절대적으로 옳다. 관리 콘솔을 사용하여 데이터 소스를 만들면 구성이 레지스트리에 저장됩니다. 그리고 당신이 정확하게 지적했듯이, 우리는 이전 릴리스의 자동차 파일 내에 데이터 소스 구성을 묶는 옵션을 가지고 있지 않았습니다.(DevStudio에서 사용할 수있는 레지스트리 리소스 업로드 옵션을 통해이 작업을 수행 할 수는 있지만이 방법은 순전히 해결책이지만 권장하지는 않습니다.) 따라서 가장 권장되는 해결 방법은 datasources.properties 파일을 사용하여 데이터 소스를 구성하는 것입니다. –

+0

앞서 언급 한 "datasources.properties"설정 파일을 사용한다면 서버가 시작되기 전에 특정 파일에 모든 데이터 소스를 설정하여 "CARBON_HOME/repository/conf"디렉토리에 놓을 수 있습니다. 그런 다음 데이터 소스 구성이 동적으로 선택됩니다. 이 접근법을 사용하는 유일한 단점은 새 데이터 소스를 구성하려는 경우 또는 기존 구성을 수정하려는 경우 (관리 콘솔을 사용하여 데이터 소스 구성을 편집하도록 선택하지 않은 경우) 다음을 수행해야합니다. 서버를 다시 시작하여 변경 사항을 반영하십시오. –

0
#----- Start of the configuration ----- 

synapse.datasources=TestDS,TestDS1 

synapse.datasources.icFactory=com.sun.jndi.rmi.registry.RegistryContextFactory 
synapse.datasources.providerPort=2199 

#TestDS Configuration 
synapse.datasources.TestDS.registry=JNDI 
synapse.datasources.TestDS.type=BasicDataSource 
synapse.datasources.TestDS.driverClassName=com.mysql.jdbc.Driver 
synapse.datasources.TestDS.url=jdbc:mysql://localhost:3306/testDB 
synapse.datasources.TestDS.username=dummy_username 
synapse.datasources.TestDS.password=dummy_password 
synapse.datasources.TestDS.dsName=TestDS 
synapse.datasources.TestDS.maxActive=100 
synapse.datasources.TestDS.maxIdle=20 
synapse.datasources.TestDS.maxWait=10000 

#TestDS1 configuration 
synapse.datasources.TestDS1.registry=JNDI 
synapse.datasources.TestDS1.type=BasicDataSource 
synapse.datasources.TestDS1.driverClassName=com.mysql.jdbc.Driver 
synapse.datasources.TestDS1.url=jdbc:mysql://localhost:3306/testDB1 
synapse.datasources.TestDS1.username=dummy_username 
synapse.datasources.TestDS1.password=dummy_password 
synapse.datasources.TestDS1.dsName=TestDS1 
synapse.datasources.TestDS1.maxActive=100 
synapse.datasources.TestDS1.maxIdle=20 
synapse.datasources.TestDS1.maxWait=10000 

#----- End of the configuration ----- 
관련 문제