Quando você inclui um nó
DatabaseRetrieve,
DatabaseRoute,
JavaCompute,
Mapeamento, ou Java™ definido pelo usuário em um fluxo de mensagens e
interage com um banco de dados nesse nó, o broker precisa estabelecer uma conexão com o
banco de dados para cumprir as operações que são executadas
pelo nó. Você deve definir um serviço configurável JDBCProvider para fornecer ao broker as informações que precisa para concluir a conexão.
Importante: Ao
nomear seu serviço JDBCProvider, considere os seguintes requisitos:
- Se desejar usar seu serviço JDBCProvider com um nó JavaCompute ou com um nó definido pelo usuário Java, o nome do seu serviço
JDBCProvider deverá corresponder ao parâmetro datasourceName na
chamada de API getJDBCType4Connection() do nó.
- Se desejar usar o serviço JDBCProvider com um nó Mapeamento, o nome do serviço
JDBCProvider deve corresponder ao nome do banco de dados que é usado pelas conversões de
banco de dados em seu Mapa de Dados Gráfico. Para cada conversão de banco de dados,
o nome do banco de dados é determinado pela definição de banco de dados
(arquivo .dbm) no projeto de Design de Dados que foi usado
para criar o mapa.
- Se desejar usar o serviço JDBCProvider com um nó DatabaseRetrieve ou com um
nó DatabaseRoute, o nome do serviço
JDBCProvider deve corresponder ao valor da propriedade Nome da
origem de dados do nó.
Um serviço configurável JDBCProvider suporta conexões a somente um
banco de dados; você deve criar um serviço para cada banco de dados ao qual
seus nós ou aplicativos Java
se conectem.
Para configurar um provedor JDBC para conexões tipo 4
usando o WebSphere Message Broker Explorer, consulte Criando um Novo Serviço Configurável.
Para configurar um provedor JDBC para
conexões tipo 4 usando os comandos mqsicreateconfigurableservice ou mqsichangeproperties,
conclua as seguintes etapas:
- Identifique o tipo de banco de dados para o qual é necessário um serviço JDBCProvider.
Os drivers JDBC e bancos de dados suportados são mostrados em Bancos de Dados Suportados; o
suporte para transações coordenadas globalmente (XA) é restrito em algumas plataformas e para alguns bancos
de dados.
- Execute o comando mqsireportproperties para visualizar a
lista de serviços JDBCProvider disponíveis. Substitua o nome de seu broker no lugar de broker_name.
mqsireportproperties broker_name -c JDBCProviders -a -o AllReportableEntityNames
A resposta do comando lista todos os serviços configuráveis JDBCProvider que estão definidos. Se você não tiver criado suas próprias definições, a seguinte lista de serviços padrão fornecidos será
mostrada:
- DB2
- Informix
- Informix_With_Date_Format
- Microsoft_SQL_Server
- Oracle
- Sybase_JConnect6_05
Se estiver conectado a um banco de dados Informix:
- Use Informix_With_Date_Format para compatibilidade com aplicativos clientes
dependentes do atributo de conexão de formato de data que foi utilizado por versões
anteriores dos servidores Informix.
- Utilize Informix para aplicativos
clientes que não dependem do atributo de formato de data.
- Visualize o conteúdo da definição de serviço JDBCProvider relevante. Por exemplo, execute o seguinte comando para exibir a definição Oracle fornecida:
mqsireportproperties broker_name -c JDBCProviders -o Oracle -r
A resposta do comando lista todas as propriedades para a definição do Oracle.
Se não tiver alterado essa definição, as propriedades são configuradas para valores iniciais, alguns dos quais você deve alterar para criar uma definição viável.
Por exemplo,
a propriedade databaseName está configurada como default_Database_Name
e você deve alterá-la para identificar o banco de dados específico ao qual deseja se
conectar.
Um serviço JDBCProvider possui as seguintes propriedades:
- connectionUrlFormat. Um padrão
que representa a definição da conexão URL, que é específica para
um tipo de banco de dados particular. Por exemplo, o padrão para DB2 é definido com o seguinte
conteúdo:
jdbc:db2://[serverName]:[portNumber]/[databaseName]:user=[user];password=[password];
O
padrão é utilizado e concluído pelo broker no tempo de execução quando ele se conecta ao
banco de dados. Os valores entre colchetes, por exemplo [serverName],
são substituídos pelo broker para o padrão usando os valores
especificados nos comandos mqsicreateconfigurableservice, mqsichangeproperties ou mqsisetdbparms.
Os valores e a ordem de preferência
a seguir são usados pelo broker para substituir o ID do usuário e a senha no
padrão:
- Primeiro, em todas as plataformas: O ID do usuário e a senha que você configurou para o banco de dados específico, usando o mqsisetdbparms e especificando
o banco de dados no parâmetro -n.
- Segundo, em todas as plataformas: O ID do usuário e a senha que você configurou para todos os outros bancos de dados, usando o mqsisetdbparms e especificando jdbc::JDBC no
parâmetro -n.
- Terceiro, os valores são específicos da plataforma:
No Windows:
O ID de serviço e a senha do broker especificados no comando mqsicreatebroker.

No Linux e UNIX: O ID do usuário mqsiUser e
senha ******** (estes valores são fixos).
No z/OS: O
ID do usuário "" e a senha "".
Se estiver usando um dos serviços JDBCProvider fornecidos, não use o comando
mqsichangeproperties para alterar o próprio padrão; as
mudanças feitas no padrão podem causar resultados imprevisíveis.
Se você usar o comando
mqsicreateconfigurableservice para definir seu próprio
serviço JDBCProvider, use o comando mqsireportproperties para
verificar se o conteúdo da cadeia connectionUrlFormat corresponde exatamente ao provedor
padrão fornecido para o tipo de banco de dados que está sendo usado.
Além disso, se você
estiver trabalhando no z/OS e estiver usando os arquivos da JCL BIPCRCS
e BIPCHPR para definir seu serviço JDBCProvider, certifique-se de que seu emulador 3270 esteja configurado
para usar a mesma página de códigos na qual o broker está em execução. Se as páginas de códigos não corresponderem, o padrão de cadeia connectionUrlFormat
definido pode não ser reconhecido corretamente pelo broker.
- connectionUrlFormat Attr1-5. Se o padrão de URL definido para um banco de dados
contiver propriedades da origem de dados JDBC não-padrão, como um identificador de serviço, especifique estas
propriedades, além dos atributos padrão, usando um de cinco atributos de URL de conexão de propósito geral. Exemplo:
- Se connectionURLFormat = jdbc:oracle:thin:[user]/[password]@[serverName]:[portNumber]:[connectionUrlFormatAttr1], connectionUrlFormatAttr1 deverá
conter um identificador de servidor Oracle, que você deve fornecer definindo
o valor para a propriedade connectionUrlFormatAttr1 no
comando mqsicreateconfigurableservice ou mqsichangeproperties.
O broker, então, pode substituir todos os valores necessários no padrão
exigido.
- Se connectionURLFormat = jdbc:informix-sqli://[serverName]:[portNumber]/[databaseName]:informixserver=[connectionUrlFormatAttr1];
user=[user];password=[password], connectionUrlFormatAttr1 deverá
conter o nome da instância do Informix
no servidor (geralmente especificado pela variável de ambiente
INFORMIXSERVER). Este valor faz distinção entre maiúsculas e minúsculas.
- databaseName. O nome do banco de dados para o qual
a entrada da origem de dados ativa conexões; por exemplo, employees.
- databaseSchemaNames. Opcionalmente, substitua o nome do esquema do banco de dados usado em instruções SQL criadas pelos nós do fluxo de mensagens. Essa propriedade é usada apenas pelo nó Mapeamento e apenas ao chamar um mapa de dados
gráfico que contenha uma conversão de banco de dados. Para obter informações adicionais, consulte Serviço Configurável JDBCProviders.
- databaseType. O tipo de banco de dados; por exemplo, DB2.
- databaseVersion. A versão do banco de dados; por
exemplo, 9.1.
- description. Uma propriedade opcional para descrever a definição da origem de dados.
- environmentParms. Somente para
DB2 e Informix. Uma propriedade opcional que especifica uma lista de propriedades de origem de dados no formato name=value, cada uma separada por um ponto e vírgula.
- jarsURL. O caminho do diretório local no sistema em que o intermediário está em execução,
no qual o arquivo JAR que contém a classe do driver tipo 4 está localizado.
Além disso, um disco
de rede de área de armazenamento pode ser usado para o caminho do diretório, mas uma unidade de rede mapeada
para um computador remoto não pode ser usada.
- maxConnectionPoolSize. Opcionalmente, configure essa propriedade para criar um conjunto de conexões JDBC. Para
obter mais informações, consulte Usando um Conjunto de Conexões do JDBC para Gerenciar os Recursos do Banco de Dados Usados por um Grupo de Execução.
- portNumber. O número da porta na qual o
servidor de servidor de banco de dados está atendendo; por exemplo, 50000.
- securityIdentity. Uma chave de segurança exclusiva para
executar uma segunda consulta de registro do broker para localizar uma entrada nas identidades de segurança do broker, que armazenam a senha criptografada para
o usuário no sistema host associado; por exemplo, mysecurityIdentity.
Crie uma identidade de segurança usando o comando
mqsisetdbparms, conforme descrito em
Protegendo uma Conexão JDBC Tipo 4. O valor de securityIdentity (por
exemplo, mysecurityIdentity) deve corresponder ao valor
que você especifica após o prefixo jdbc:: para
o parâmetro -n nesse comando.
A
identidade de segurança fornece um par de valores de ID do usuário e senha, que
são usados para acessar a origem de dados especificada definida para uma entrada de
serviço JDBCProvider particular. Esta propriedade
será ignorada se a URL de conexão não contiver um par de ID do usuário e senha
que requerem valores da propriedade para substituição para essas inserções.
Os valores-padrão, que você pode configurar especificando
um ResourceName igual a jdbc::JDBC no
comando mqsisetdbparms,
são usados sob as seguintes condições:
- Se o securityIdentity estiver em branco ou se você
não o tiver alterado a partir do valor padrão default_User@default_Server,
mas a identidade for necessária para o padrão da URL da conexão.
- Se você tiver inserido uma chave de identidade de segurança exclusiva válida,
mas ela não puder ser encontrada sob a chave DSN.
- serverName. O nome do servidor; por exemplo, host1.
- type4DatasourceClassName. O nome da
classe de origem de dados JDBC utilizado para estabelecer uma conexão tipo
4 com um banco de dados remoto e para suporte a transações coordenadas.
Por exemplo, especifique com.ibm.db2.jcc.DB2XADataSource para DB2 ou especifique oracle.jdbc.xa.client.OracleXADataSource para
Oracle. Você deve especificar o nome de classe XA ao usar a chamada de API getJDBCType4Connection()
para transações coordenadas. Se o servidor de banco de dados não suportar
transações XA ou você não desejar usar o protocolo XA, esta propriedade será
opcional e você deverá configurar a propriedade jdbcProviderXASupport
como false.
- type4DriverClassName. O nome da classe do driver JDBC tipo 4 usado para estabelecer
uma conexão. Por
exemplo, especifique com.ibm.db2.jcc.DB2Driver para DB2 ou especifique oracle.jdbc.OracleDriver para
Oracle.
- jdbcProviderXASupport. Uma propriedade
opcional que controla se o broker conecta a um servidor de banco de dados
usando o Protocolo XA. Por padrão, essa propriedade é configurada como true. Se o servidor de banco de dados não estiver ativada para Suporte XA, ou transações coordenadas não forem necessárias, configure o valor como false. Nesse caso, será usado o driver tipo 4 especificado usando a propriedade type4DriverClassName, em vez da origem de dados tipo 4 especificada na propriedade type4DatasourceClassName.
- Se desejar usar a definição fornecida, execute o comando
mqsichangeproperties para substituir valores-padrão por
valores específicos de seu banco de dados e ambiente. Se tiver qualquer dúvida sobre os valores necessários,
consulte o administrador do seu banco de dados ou verifique a documentação
fornecida com o banco de dados que você escolheu. Alguns valores dependem de
como e onde você instalou o produto do banco de dados; por exemplo,
a propriedade jarsURL identifica o local
dos arquivos JAR fornecidos e instalados pelo provedor de banco de dados.
- Se desejar criar um novo serviço configurável, talvez porque você deseja manter o serviço fornecido como
um modelo para definições futuras, execute o comando
mqsicreateconfigurableservice para criar a definição.
mqsicreateconfigurableservice broker_name -c JDBCProviders -o provider_name
-n list of properties -v list of values
Insira o comando em uma única linha;
o exemplo é dividido para aprimorar a capacidade de leitura.
Especifique todas as propriedades que são necessárias para o provedor de banco de dados escolhido. Para especificar uma lista de propriedades e valores, separe os itens após cada sinalizador com uma vírgula. Por exemplo, -n databaseName,databaseType
-v EmployeeDB,DB2. Se você não especificar todas as propriedades no comando mqsicreateconfigurableservice, é possível atualizá-las posteriormente com o comando mqsichangeproperties.
- Quando tiver configurado ou modificado seu serviço JDBCProvider,
você deverá recarregar os grupos de execução que atualmente usam, ou pretendem
usar, o serviço JDBCProvider.