IBM WebSphere Application Server
Enterprise Edition Versão 4.1
Notas Sobre o Release

Última atualização: 11/01/2002

Este documento é atualizado periodicamente. Para obter a última versão verifique a página do Infocenter do WebSphere Application Server no endereço www.ibm.com/software/webservers/appserv/infocenter.html.

Estas notas sobre o release são apenas para serviços corporativos. Para obter uma descrição dos serviços corporativos, consulte o tópico O que são serviços corporativos? no InfoCenter da Enterprise Edition.

Há notas sobre release separadas disponíveis para os seguintes produtos:

Conteúdo deste Documento

Pré-requisitos
Instalando Serviços Corporativos
Pré-visualização da Tecnologia BPBeans (Business Process Beans)
Defeitos e Soluções Alternativas

Software Suportado e de Pré-requisito

O site na Web a seguir lista os produtos de software requeridos pelo WebSphere Application Server ou suportados para sua utilização:

www.ibm.com/software/webservers/appserv/doc/latest/prereq.html

Nota: Este release de serviços corporativos não suporta CICS Universal Clients & Transaction Gateway.

Instalando Serviços Corporativos

Você pode encontrar instruções de instalação completas no Enterprise Services Installation Guide (pdf).

Os serviços corporativos Versão 4.1 requerem a Advanced Edition Versão 4.0.2

A maioria das instalações dos serviços corporativos (com a exceção dos clientes CORBA C++) requerem que o servidor ou cliente Advanced Edition seja instalado primeiro para fornecer uma base J2EE. Para instalar os serviços corporativos Versão 4.1, a base da Advanced Edition precisa estar no nível Versão 4.0.2. Esse nível é equivalente à Versão 4.0 (ou 4.0.1) mais o FixPack 2. A Advanced Edition Versão 4.0 está incluída em sua caixa da Enterprise Edition. Você pode fazer download do FixPack 2 a partir da seguinte página da Web:

http://www.ibm.com/support/manager.wss?rs=180&rt=0&org=SW&doc=4001038.

A desinstalação remove a Advanced Edition e os serviços corporativos

Quando uma desinstalação do WebSphere Application Server é executada, a Advanced Edition e os serviços corporativos são removidos de seu sistema. Não há um programa de desinstalação separado para os serviços corporativos. Esteja ciente de que, depois de instalar os serviços corporativos, não há como desinstalar (ou "voltar atrás") o FixPack 2 da Advanced Edition.

Instalando Exemplos

Diferentemente da instalação da Advanced Edition, a Galeria de Exemplos dos serviços corporativos não é instalada durante uma instalação "Típica". Para instalar os exemplos dos serviços corporativos, selecione a opção de instalação "Personalizada" e, em seguida, selecione "Exemplos" na lista de opções.

Pré-visualização da Tecnologia BPBeans (Business Process Beans)

BPBeans é uma nova tecnologia para a construção de componentes Java que utilizam paradigmas de processamento de transação estendidos. O BPBeans pode:

BPBeans é uma visualização da tecnologia. Isto significa que você pode utilizar a tecnologia para demonstrações ou projetos de "certificação de conceito". Você não pode utilizar BPBeans em um ambiente de produção. Você pode instalar BPBeans no Windows NT Versão 4, com SP4 ou posterior, ou no Windows 2000. Esta pré-visualização da tecnologia inclui ferramentas, runtime e documentação de aplicativos. Ela está disponível apenas em Inglês dos Estados Unidos.

Instalando BPBeans

Para instalar a pré-visualização da tecnologia BPBeans, execute o comando Windows/BPB_tech_preview/BPBeansSetup.exe localizado no CD do Enterprise Edition Server. Este comando instala as ferramentas, o runtime e a documentação do aplicativo.

Defeitos e Soluções Alternativas

As seções a seguir fornecem informações sobre defeitos conhecidos e soluções alternativas, bem como informações suplementares para tópicos abordados no InfoCenter da Enterprise Edition. A menos que indicado de outra forma, os defeitos e soluções alternativas aplicam-se a todas as plataformas suportadas.

Instalação
ActiveX para Ponte EJB
BRBeans (Business Rule Beans)
CORBA C++ SDK
Suporte Estendido a Mensagens
Questões Relacionadas ao Idioma Nacional

Instalação

Defeito 106140: A tecla Tab não funciona durante a instalação (HP-UX/Linux/Solaris)

Nos painéis de instalação que incluem um campo de texto, a tecla Tab não move o foco adiante após atingir o campo de texto, o que impede que você prossiga para o próximo painel.

Solução alternativa: Utilize um dispositivo indicador para clicar no botão Avançar.

Defeito 108598: A janela de seleção do usuário desaparece atrás da janela de plano de fundo (Solaris)

Durante a instalação em Solaris (exibição X11), a pequena janela na qual você faz suas seleções pode ocultar-se atrás de uma janela de plano de fundo maior quando a janela de plano de fundo é trazida para o foco.

Solução alternativa: Traga a janela pequena de volta para o primeiro plano pressionando Alt+Tab e, em seguida, clique na janela pequena para trazê-la para o foco.

ActiveX para ponte EJB

Defeito 112685.RN Erro de Captura "440 Erro de Automação" ao Utilizar CallByName() no Visual Basic

A função CallByName() do Visual Basic é utilizada com o ActiveX para ponte EJB quando a letra maiúscula/minúscula de um método Java não pode ser garantida (por exemplo, o Visual Basic altera myJavaObject.create para myJavaObject.Create). Conforme documentado no artigo Q194418 do Microsoft Knowledge em http://support.microsoft.com/support/kb/articles/Q194/4/18.ASP:

"Quando um erro é levantado em um procedimento de um servidor ActiveX e o procedimento é chamado pela função CallByName() de um cliente, o cliente sempre recebe o erro 440, independentemente do número do erro original que está sendo levantado."

Todas as exceções Java que normalmente seriam lançadas como erro 0x6003 com o rastreio de pilha Java incorporadas na descrição do erro são lançadas como erro 440 com as palavras "Erro de Automação" incorporadas na descrição de erro.

Solução alternativa: Execute uma das seguintes etapas:

  1. Utilize a ferramenta de substituição Microsoft DispInvoker disponível no Artigo Q202057 no Microsoft Knowledge Base em http://support.microsoft.com/support/kb/articles/Q202/0/57.asp
  2. Renomeie o método Java ou crie um método substituto Java para chamar o método Java de destino. Ao escolher um nome que não é uma palavra-chave do Visual Basic, a letra maiúscula/minúscula provavelmente será preservada.

Defeito 111006.RN: Parâmetro XJBInit() inválido (Windows)

O erro a seguir é exibido se você tiver parâmetros inválidos na matriz da cadeia XJBInit():

0x6002 "XJBJNI::Init() Falha ao criar VM" ao chamar XJBInit().

Se você tiver o log de C++ ativado, o log de atividades mostrará qual é o parâmetro inválido.

Defeito 111009.RN: Como ativar o log e o rastreamento (Windows)

O ActiveX para ponte EJB fornece dois formatos de log e rastreamento: C++ e Java.

Log de atividades de C++
O log de atividades de C++ mostra erros de JNI, mensagens de erro do Java Console e mensagens de inicialização de XJB. Este log é mais útil para a determinação de erros de XJBInit() e exceções atípicas que não provêm do ambiente Java.

Para ativar o log de atividades de C++, você precisará instalar o cliente CORBA C++ SDK. Uma vez instalado, o ActiveX para ponte EJB detectará a presença do SDK e ativará o log automaticamente. Para saber detalhes sobre como modificar definições de log, consulte o tópico "Corba support > Developing a C++ CORBA Server > Specifying Runtime properties" no Infocenter da Enterprise Edition.

Por padrão, o log é criado no diretório WAS_HOME\Enterprise\service. Para programas de serviço como o Active Server Pages, o log será criado no diretório C:\WINNT\SYSTEM32\service. O diretório padrão do log pode ser substituído utilizando a variável de ambiente  SOMCBASE , a qual é definida pelos arquivos launchClientXJB.bat e setupCmdLineXJB.bat no diretório WAS_HOME\Enterprise\bin.

Por exemplo, para ativar o arquivo de propriedade defina a variável de ambiente SOMCBASE como segue (você deve utilizar uma variável de ambiente do Sistema para Active Server Pages): 

set SOMCBASE= C:\WebSphere\AppClient\Enterprise

Assim que o aplicativo é iniciado novamente, um arquivo de log denominado activitycpp.log é criado no diretório C:\WebSphere\AppClient\Enterprise\service. Para exibir o log, abra uma janela de comando, vá para o diretório C:\WebSphere\AppClient\Enterprise\service e, em seguida, digite o comando a seguir: 

launchClientXJB showlogcpp activitycpp.log

Para desativar o log quando o C++ SDK estiver instalado, renomeie o arquivo SOMRSBSM.DLL localizado no diretório WAS_HOME\Enterprise\bin. Note que a redenominação desta DLL tornará o C++ SDK inutilizável.

Log de rastreio de Java
O log de rastreio de Java exibe informações que você pode utilizar para depurar chamadas de método, consultas de classe e problemas de coerção de argumentos. Como a porção Java da ponte espelha a funcionalidade da interface COM IDispatch, as informações no log de rastreio são semelhantes ao que você passou a esperar de uma interface IDispatch. Para entender o log de rastreio você precisará ter noções fundamentais de IDispatch.

Para ativar o log do usuário, inclua os seguintes parâmetros em XJBInit()inputstringarray

"-DtraceString=com.ibm.ws.client.xjb.*=event=enabled"
"-DtraceFile=C:\MyTrace.txt"

Por exemplo, se estiver tendo problemas com o código do Visual Basic a seguir:

Dim oInt as Object
Dim strHexValue as String
Set oInt = oXJB.FindClass("java.lang.Integer")
strHexValue = oInt.toHexString(24579)

O rastreio resultante para a linha falha teria uma aparência semelhante a esta:

[01.07.31 11:17:13:815 CDT] 6b2d2635 JDispatch  E dispGetIDsOfNames: Retrieving DISPID
          from Method or Field.
          ClassID:-102|ObjectID:0|Name:FindClass|Result DISPID:60
[01.07.31 11:17:13:875 CDT] 6b2d2635 JDispatch  E dispInvoke: Retrieving Member from DISPID
          and Arg Types.
          ClassID:-102|ObjectID:0|DISPID:60|Arg Sig:Ljava.lang.String;|Found Member:public
          static java.lang.Class com.ibm.ws.client.xjb.JClassFactory.FindClass(java.lang.String)
          throws java.lang.Exception
[01.07.31 11:17:13:946 CDT] 6b2d2635 JClassFactory E FindClass complete.
          ClassName:java.lang.Integer|ClassID:-103
[01.07.31 11:17:13:946 CDT] 6b2d2635 JDispatch  E dispInvoke: Method.invoke() Succeeded. Result:
          class java.lang.Integer
[01.07.31 11:17:13:956 CDT] 6b2d2635 JDispatch  E dispGetIDsOfNames: Retrieving DISPID
          from Method or Field.
          ClassID:-103|ObjectID:0|Name:toHexString|Result DISPID:115
[01.07.31 11:17:13:986 CDT] 6b2d2635 JDispatch  E dispInvoke: Retrieving Member from DISPID
          and Arg Types.
          ClassID:-103|ObjectID:0|DISPID:115|Arg Sig:S|Found Member:NOT FOUND

Aqui está uma explicação do rastreio acima:

Linha 1: dispGetIDsOfNames() foi chamado em uma Classe interna (no. -102) procurando o método FindClass. Ele retornou um DISPID (ID de Dispatch) 60.
Linha 2: dispInvoke() foi chamado na mesma Classe interna (no. -102) para tentar chamar o método associado a DISPID 60 com uma assinatura de argumento "Ljava.lang.String;" (Maneira interna do Java de dizer java.lang.String. Este é o formato que javap.exe produzirá). O membro foi encontrado e sua definição foi exibida no log.
Linha 3: O método FindClass() foi concluído e retornou um ClassID -103 para java.lang.Integer
Linha 4: dispInvoke: Retorna a classe java resultante java.lang.Integer
Linha 5: O método toHexString foi encontrado em dispGetIDsOfNames e retornou um DISPID 115.
Linha 6: dispInvoke, entretanto, não pôde encontrar o membro com um DISPID 115 com uma Assinatura de Argumento "S" ("S" é a maneira interna do Java dizer "short").

As assinaturas de argumento (ou Descritores) são definidos a seguir:

Caractere BaseType Tipo Interpretação
B byte byte assinalado
C char caractere Unicode
D double valor de ponto de flutuação de precisão dupla
F float valor de ponto de flutuação de precisão única
I int inteiro
J long inteiro longo
L<nomedaclasse>; reference uma instância da classe <nomedaclasse>
S short short assinalado
Z boolean true ou false
[ reference uma dimensão de matriz

Para saber mais detalhes, consulte o capítulo 4.3.2, Field Descriptors, na Especificação do Sun VM:http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html

Defeito 111010.RN: Barras de caminho nas duas direções (Windows)

No código e documentação de exemplo para ActiveX para ponte EJB, são exibidas barras normais e invertidas nos diretórios WAS_HOME e Java. O Windows NT e o Windows 2000 podem tratar barras misturadas. Por exemplo, o caminho C:/WebSphere/AppClient\java\jre está correto.

Defeito 111011.RN: Como exibir mensagens Java de System.out (Windows)

O ActiveX para ponte EJB não tem um console disponível para exibir mensagens Java de System.out. Para exibir estas mensagens ao executar um programa de cliente independente (como o Visual Basic), redirecione a saída para um arquivo. Por exemplo, lance seu aplicativo de cliente utilizando o comando a seguir:

launchClientXJB.bat MyProgram.exe > output.txt

Para exibir estas mensagens ao executar um programa de Serviço como o Active Server Pages, substitua o objeto Java System.out OutputStream por
um FileOutputStream. Por exemplo, em VBScript você faria o seguinte:

'Redirecionar system.out para um arquivo
' Assumir que oXJB é o objeto XJB.JClassFactory inicializado
Dim clsSystem
Dim oOS
Dim oPS
Dim oArgs
' Obter a classe do Sistema
Set clsSystem = oXJB.FindClass("java.lang.System")
' Criar um objeto FileOutputStream
Set oOS = oXJB.NewInstance(oXJB.FindClass("java.io.FileOutputStream"), "c:\sysout.txt")
' Criar um objeto PrintStream e atribuí-lo ao nosso FileOutputStream
Set oArgs = oXJB.GetArgsContainer
oArgs.AddObject "java.io.OutputStream", oOS
Set oPS = oXJB.NewInstance(oXJB.FindClass("java.io.PrintStream"), oArgs)
' Definir nosso OutputStream do Sistema para nosso arquivo
clsSystem.setOut oPS

BRBeans (Business Rule Beans)

Defeito 110828.RN: Executando exemplos de BRBeans com bancos de dados diferentes do DB2

Se você estiver utilizando um banco de dados diferente do DB2 com os exemplos de BRBeans (Exemplo de Filme ou Exemplo Simples), é necessário modificar o arquivo Table.ddl gerado. Para obter detalhes, consulte o tópico Modificando o arquivo Table.ddl para ser utilizado com bancos de dados diferentes do DB2.

Defeito 114312.RN: Novo arquivo BRBeans Jar para suportar o Informix Versão 7.3.1

Um novo arquivo BRBeans Jar denominado BRBeansInformix731.jar foi incluído no diretório <WAS_HOME>/Enterprise/BRBeans para suportar o Informix Versão 7.3.1. Você deve utilizar esse arquivo jar se quiser executar o BRBeans em um servidor, acessando um banco de dados Informix 7.3.1. Para o Informix Versão 9.2.1, continue a utilizar o arquivo BRBeansInformix.jar.

Para executar BRBeans no Informix Versão 7.3.1, você também precisa de uma correção para o erro número 153465 do Informix. É uma correção para o driver JDBC do Informix e está disponível na Versão 2.21 e posteriores do driver. Sem essa correção, os beans corporativos BRBeans não podem salvar seu estado no banco de dados e os BRBeans não funcionarão.

Defeito 116462.RN: Ignorar as mensagens de aviso ejbdeploy

Se validar estiver especificado, quatro mensagens de aviso serão exibidas durante a implementação dos BRBeans. Esses avisos são para createRule, indicando que arg1 e o tipo de retorno devem ser seriáveis. Essas mensagens de aviso podem ser ignoradas.

Defeito 110956.RN: Exportador de regra da GUI não produz o documento XML correto

Ao importar regras de um documento XML que você criou utilizando a função de exportação do aplicativo de gerenciamento de regra de BRBeans, o analisador XML retorna mensagens de erro indicando que o documento não pode ser analisado e que nenhuma regra foi importada. Isto ocorre apenas na importação de um documento criado utilizando o aplicativo de gerenciamento de regra (não o utilitário de linha de comandos). Isto ocorre porque a função de exportação do aplicativo de gerenciamento de regra não inclui o cabeçalho correto e as tags de marca de fim de arquivo do XML no documento XML exportado.

Solução alternativa: Execute um dos procedimentos a seguir:

Defeito 109743.1.RN: Erro no driver Merant SequeLink

Devido a um erro no driver JDBC Merant SequeLink o método clearParameters não reinicializa adequadamente os parâmetros para permitir que instruções preparadas sejam reutilizadas.

Solução alternativa: Ao utilizar o driver Merant SequeLink com qualquer banco de dados, desative o armazenamento em cache de instruções preparadas na origem de dados BRBeans definindo o Tamanho da Cache da Instrução como 0. Se estiver utilizando a Advanced Edition, a propriedade de Tamanho da Cache da Instrução é uma das propriedades de Pooling da Conexão da origem de dados. Se estiver utilizando a Advanced Developer Edition, a propriedade de Tamanho da Cache da Instrução será uma das propriedades da Origem de Dados.

Defeito 111105.RN: Pasta de Base do Ponto de Disparo e regras dependentes

Quando você dispara uma regra que possui regras dependentes de um Ponto de Disparo que tenha seu atributo de Pasta de Base definido como um valor não-nulo, uma NullPointerException será retornada.

Solução alternativa: Não defina o atributo de Pasta de Base de nenhum Ponto de Disparo que dispare regras que possuem regras dependentes.

Defeito 111371.RN: O Netscape não é iniciado depois de solicitar Ajuda (Solaris)

O navegador Netscape não é iniciado depois de solicitar Ajuda de uma interface com o usuário que está sendo executada na plataforma Solaris.

Solução alternativa: Defina um locale válido para sua sessão e desative o controle de acesso.

Para definir um locale válido, execute as seguintes etapas:

  1. Digite o comando a seguir para exibir uma lista de locales válidos para sua máquina:

    locale -a

  2. Para definir o locale, digite o seguinte comando, em que locale é um dos locales válidos:

    export LANG=locale

    Por exemplo, para definir o locale para o inglês dos Estados Unidos, digite:

    export LANG=en_US

Para desativar o controle de acesso, digite o seguinte comando:

xhost +

CORBA C++ SDK

Defeito 110529.RN: Configuração do servidor C++ SDK

Conclua as etapas a seguir para inicializar o banco de dados cds, o qual é utilizado por servidores C++ e pelo daemon do serviço de localização do C++, somorbd:

  1. Crie um diretório denominado data no caminho especificado pela variável de ambiente SOMCBASE.
  2. Execute o utilitário orb, cdspop, para inicializar o banco de dados cds, o qual é colocado no diretório SOMCBASE/data.

Defeito 111218.RN: O RMIC gera getters e setters duplicados

Se você executar a versão atual do RMIC em uma classe Java que inclui getters e setters e esses getters e setters forem denominados de acordo com as convenções de nomenclatura de JavaBean, o RMIC gerará getters e setters duplicados.

Solução alternativa: Modifique a classe Java para renomear os getters e setters.

Por exemplo, considere a parte de código a seguir da classe Java "Book":

public class Book implements Serializable
{
private String BookTitle = null;
private double price = 0.0;
private int salesCount;
public Book()
{
salesCount = 0;
}
public void setBookTitle( String name )
{
bookTitle = name;
}
public String getBookTitle()
{
return( bookTitle );
}
...

O código acima contém um getter e um setter para BookTitle. O getter e o setter seguem a convenção de nomenclatura JavaBeans: get<var> e set<var>. Isto causa problemas para o RMIC. O fato de que as variáveis de classe são declaradas como private resulta no RMIC gerando IDL com uma declaração de atributo e uma public para cada variável, por exemplo:

public long a;
attribute long a;

Quando o IDLC é utilizado para gerar código a partir do IDL, são criados dois getters e dois setters para cada variável de classe, um público, o outro protegido, e o código não é compilado.

Solução alternativa: Renomeie os getters e setters na classe Java para um nome que não siga a convenção de nomenclatura de JavaBean. Esta é uma possibilidade, utilizando sendBookTitle e receiveBookTitle:

...
salesCount = 0;
}
public void sendBookTitle( String name )
{
bookTitle = name;
}
public String receiveBookTitle()
...

Defeito 110688.RN: Ignora referências à biblioteca Valuetype suportando tipos de dados Java primitivos

A documentação de suporte do CORBA no InfoCenter da Enterprise Edition afirma que a biblioteca valuetype contém implementações valuetype C++ para os tipos de dados primitivos baseados em java normalmente utilizados. Isto não é correto.

A biblioteca valuetype fornece suporte para várias classes primitivas no pacote java.lang como Integer, Short e Long. Isto não é igual a tipos primitivos Java como short, long e integer. A lista dos métodos implementados da biblioteca valuetype C++ fornecida no InfoCenter afirma corretamente que várias classes java.lang são fornecidas; entretanto, você deve ignorar a lista de mapeamentos de tipos IDL para tipos CORBA pois esta lista não é relevante para a biblioteca valuetype.

Defeito 110689.RN: A biblioteca valuetype não suporta valuetypes stream e writer

Os métodos printStackTrace(java.io.PrintStream) e printStackTrace(java.io.PrintWriter) de java::lang::Throwable não são suportados na biblioteca valuetype devido à dificuldade de transmitir rastreio de pilha do Java para o runtime do C++.

As implementações concretas dos argumentos para os métodos printStackTrace, java.io.PrintStream e java.io.PrintWriter não são fornecidas. Os valuetypes stream e writer contidos na biblioteca valuetype (ou seja, OutputStream, FilterOutputStream, PrintStream, Writer e PrintWriter) são classes abstratas que não podem ser utilizadas como fluxos de saída locais em seu programa cliente C++.

Defeito 110895.RN: O método Byte_init create__() não existe na biblioteca valuetype

O método Byte_init create__() não existe na biblioteca valuetype. Ignore as referências feitas a este método na documentação de suporte do CORBA.

Defeito 111225.RN: Correções para comandos no tópico "Criando seus próprios valuetypes C++"

No artigo do InfoCenter intitulado "Criando seus próprios valuetypes C++", note as correções para os seguintes comandos:

Na etapa um, o comando deve ser:

rmic -idl java.util.Hashtable

Na etapa dois, o comando deve ser:

idlc .... java/util/Hashtable.idl

Suporte Estendido a Mensagens

Defeito 111034.RN: Download do último nível do MQSeries supportPac MA88

Para utilizar o suporte Estendido a Mensagens, faça o download e instale o último nível do MQSeries supportPac MA88: classes MQSeries para Java e classes MQSeries para Java Message Service: www.ibm.com/software/ts/mqseries/txppacs/ma88.html

Instale a Versão 1.1.3, datada de 29/08/01 ou posterior.

Defeito 110963.RN: Inclusão de arquivos Jar do MQSeries no classpath do Custom Service

A documentação do InfoCenter, assim como a documentação do MQSeries, sugere copiar os arquivos Jar e arquivos de biblioteca da estrutura de diretórios MQSeries\java para vários diretórios do WebSphere. Embora esta configuração possa funcionar, ela não é recomendada por razões de facilidade de manutenção. Os upgrades e correções para o MQSeries não têm o efeito desejado. Um método mais apropriado é incluir estes arquivos Jar no classpath do Custom Service para o Serviço de Suporte Estendido a Mensagens. Os arquivos Jar do MQSeries a serem incluídos são com.ibm.mq.jar e com.ibm.mqjms.jar.

Se estiver utilizando a edição AEd (Advanced Developer Edition), você deverá especificar também quaisquer arquivos Jar requeridos do provedor de nomenclatura no classpath do Resource Provider. Consulte o Defeito 106821.RN para obter mais informações.

Defeito 106821.RN: Configurando o suporte Estendido a Mensagens com AEd

Como a edição AEd (Advanced Edition for Developers) não fornece um espaço de nomes persistente você precisará utilizar um segundo provedor de nomenclatura ao configurar o suporte Estendido a Mensagens para utilização com a AEd.

Solução alternativa: Conclua as etapas a seguir para configurar o provedor de sistema de arquivos como o segundo provedor de nomenclatura:

Nota: O provedor de nomenclatura do sistema de arquivos utiliza a propriedade do sistema "file.separator" como o separador. Em plataformas Windows, esteja ciente que um nome que normalmente seria ligado como jms/mq/Destination é ligado como jms\mq\Destination. Pode ser necessário representar a barra invertida única (\) utilizando duas barras invertidas (\\).

  1. Edite o arquivo JMSAdmin.config.
  2. Altere o provedor para o provedor FSContext e altere a URL do Provedor.
  3. Crie o diretório C:\temp\JNDI-Directory.
  4. Execute JMSAdmin.bat e ligue seu ConnectionFactories e Queues/Topics como você faria normalmente.
  5. Crie uma referência externa no espaço de nome do WebSphere para o espaço de nome do Sistema de Arquivos conforme segue:
    1. Abra o Console de Administração em um navegador da Web (http://localhost:9090/admin).
    2. Navegue na árvore até Recursos > Provedores JMS.
    3. Clique em Novo e especifique os valores a seguir:
      • Class Path de Servidor:

        MQSeriesInstallDir\java\lib\fscontext.jar;
        MQSeriesInstallDir\java\lib\providerutil.jar;

      • Nome: MQFscontextProvider
      • Context Factory: com.sun.jndi.fscontext.RefFSContextFactory
      • URL do provedor: file:/C:/temp/JNDI-Directory
    4. Clique em OK para salvar as alterações para o provedor.
  6. Expanda o provedor JMS criado e inclua seu Destino e Connection Factory. Eles fornecem referências externas do espaço de nome do WebSphere para o espaço de nome do Sistema de Arquivos. Utilize os mesmos nomes que você especificou para o comando JMSAdmin. Por exemplo:

    Connection Factory:

    Nome: ConnectionFactory
    Nome JNDI: Sample/JMS/ConnectionFactory
    Nome Externo JNDI (Windows): Sample\JMS\ConnectionFactory
    Nome Externo JNDI (Unix): Sample/JMS/ConnectionFactory

    Destino:

    Nome: Q1
    Nome JNDI: Sample/JMS/Q1
    Nome Externo JNDI (Windows): Sample\JMS\Q1
    Nome Externo JNDI (Unix): Sample/JMS/Q1

  7. Salve sua configuração.
  8. Inicie novamente o servidor de aplicativos.

Defeito 116467.RN: O servidor intermediário de mensagens não é inicializado (Linux SuSE Versão 7.2)

Ao executar o MQSeries no Linux SuSE Versão 7.2, a inicialização do servidor intermediário de mensagens não é concluída depois do comando de inicialização ser emitido: strmqbrk -m <Queue Manager> e você não pode interromper o comando pressionando CTRL+C. Se você verificar o status do servidor intermediário de mensagens utilizando o comando dspmqbrk, o resultado continua sendo "Servidor intermediário de mensagens do MQSeries para o gerenciador de filas <Queue Manager> sendo iniciado".

Não há solução alternativa e, portanto, você não pode executar neste momento aplicativos do WebSphere que utilizam Publish/Subscribe no Linux SuSE Versão 7.2 no momento.

Defeito 115709: Erro MQJMS1086 lançado ao enviar ou publicar uma mensagem (HP-UX)

O JVM fornecido com o WebSphere no HP-UX não suporta a codificação utilizada pelos Gerenciadores de Fila do MQSeries. Isso faz com que as classes do JMS lancem uma JMSException com um código de erro igual a MQJMS1086 e uma exceção ligada do tipo UnsupportedEncodingException quando você tentar enviar ou publicar uma mensagem em uma Fila.

Solução alternativa: Altere a codificação utilizada pelo Gerenciador de Filas. Altere para um valor CCSID igual a 850 ou 819, digitando os seguintes comandos:

runmqsc
alter qmgr CCSID(850)

Para obter mais informações, consulte o manual do MQSeries Utilizando Java, Capítulo 2.

Defeito 111014.RN: Utilização do InitialContextFactory com a ferramenta JMSAdmin

A ferramenta JMSAdmin fornecida com o MQSeries supportPac MA88 para a administração de objetos JMS requer a especificação de determinados parâmetros de configuração. Para a propriedade Initial Context factory há atualmente três valores suportados:

O WebSphere Application Server reprovou com.ibm.ejs.ns.jndi.CNInitialContextFactory e, portanto, você deverá utilizar com.ibm.websphere.naming.WsnInitialContextFactory em substituição. Para que o JMSAdmin trabalhe com o repositório de nomenclatura do WebSphere ainda é necessário que ele utilize com.ibm.ejs.ns.jndi.CNInitialContextFactory. O WebSphere Application Server e os objetos JMS administrados podem trabalhar juntos com esses valores diferentes para Initial Context factory.

Defeito 114590: Nenhum mqjbnd02 no caminho da biblioteca Java (apenas AIX)

Se a variável de ambiente LIBPATH não contiver o caminho para a biblioteca Java do MQSeries, a exceção a seguir será lançada:

Exception:
no mqjbnd02 (libmqjbnd02.a or .so) in java.library.path
java.lang.UnsatisfiedLinkError: no mqjbnd02 (libmqjbnd02.a or .so) in java.library.path

Solução alternativa: Inclua o seguinte caminho na sua variável de ambiente LIBPATH:

/mq_install_path/java/lib

Defeito 114907: Não é possível conectar-se ao Gerenciador de Filas do MQSeries (AIX)

Ao utilizar o MQSeries a partir do WebSphere Application Server, a criação de um JMS QueueConnection ou um WMQ MQQueueManager pode falhar com um Código de Razão WMQ igual a 2059, mesmo quando o Gerenciador de Filas estiver sendo executado. Isso deve-se às conexões de ligações utilizadas pelo WebSphere para o Gerenciador de Filas que podem requerer alguma configuração adicional.

Solução alternativa: Se você estiver utilizando o MQSeries V5.2, há uma sub-rotina adicional que pode ser incluída no mqs.ini que afeta a parte de memória compartilhada utilizada pelo MQSeries ao conectar-se (o arquivo mqs.ini é geralmente encontrado no diretório /var/mqm). O parâmetro é "IPCCBaseAddress" e está definido por gerenciador de filas. Por padrão, esse parâmetro é definido para o valor "8", mas o valor "11" é recomendado (valores permitidos para este parâmetro são "4", "5", "8", "9", "10", "11" ou "12").

Segue um exemplo de uma sub-rotina QueueManager alterada em um arquivo mqs.ini:

QueueManager:
Name=MQJavaTest
Prefix=/var/mqm
IPCCBaseAddress=11

O Gerenciador de Filas deve ser reciclado para que as alterações tenham efeito. Se "11" não permitir que o aplicativo conecte-se normalmente, então, tente os outros valores. Quanto mais componentes estiverem envolvidos no aplicativo (WebSphere, DB2 e assim por diante), menos memória compartilhada estará disponível para que o MQSeries utilize.

Consulte o site na Web a seguir para obter as informações mais atuais sobre este problema:

http://www.ibm.com/software/ts/mqseries/support/summary/javasupp.html

Esse problema não ocorre quando o banco de dados do aplicativo e o banco de dados administrativo são remotos.

Defeito 106667.RN: O servidor de aplicativos não pode ser parado depois do gerenciador de filas do MQSeries ser parado

Ao tentar parar o servidor de aplicativos após um stoppage do gerenciador de filas do MQSeries, o processo do servidor lança uma violação de acesso em java.exe. Isto ocorre quando o suporte Estendido a Mensagens foi configurado no servidor e está atendendo em um destino JMS do MQSeries.

Solução alternativa: Ao utilizar o suporte Estendido a Mensagens, não pare o gerenciador de filas do MQSeries antes de parar o servidor de aplicativos. Se uma falha anormal fizer com que o gerenciador de filas pare, realize uma parada forçada do servidor de aplicativos no console administrativo.

Defeito 116061.RN: Não é possível reiniciar o Gerenciador de Filas do MQSeries

A tentativa de parar e reiniciar o Gerenciador de Filas do MQSeries resulta no seguinte erro:

AMQ8041: O gerenciador de filas não pode ser reiniciado nem excluído porque há processos, conectados anteriormente, que ainda estão sendo executados.

Solução alternativa: Reinicie o MQSeries e o WebSphere Application Server.

Uma correção para esse problema está programada para ser fornecida no nível MQSeries Versão 5.2 CSD 3. Consulte a página de suporte do MQSeries para obter atualizações:

http://www.ibm.com/software/ts/mqseries

Defeito 106907.RN: Exceção ClassDefNotFound ao receber javax.jms.ObjectMessage

Ao receber um javax.jms.ObjectMessage em um bean de mensagem acionado pelo atendente do JMS, uma chamada para getObject() em JMS ObjectMessage ocasionalmente retorna uma exceção ClassDefNotFound. Esta exceção ocorre quando a classe do aplicativo contida no interior de ObjectMessage não pode ser carregada porque é encontrada no classloader do bean corporativo e não no classpath do sistema.

Solução alternativa: Coloque a definição da classe do objeto no interior do classpath do ws.ext.dirs copiando o arquivo jar para o diretório \WebSphere\AppServer\lib\ext.

Defeito 109440.RN: Falha de assinantes de tópicos do JMS Listener de vários servidores

Se configurou dois servidores de aplicativos WebSphere com atendentes do JMS que são assinantes de tópicos do JMS utilizando a mesma fila de assinatura do MQ JMS, você poderá perder publicações intermitentemente ou encontrar a seguinte mensagem de erro no console:

MQJMS1031: ocorreu um erro interno

Isto ocorre porque o suporte para MQSeries JMS Pub/Sub requer que cada consumidor de conexão de assinante do JVM utilize uma fila de assinatura diferente.

Solução alternativa: Quando utilizar o JMSAdmin para criar seu TopicConnectionFactory, especifique nomes de fila de assinatura BROKERCCSUBQ() exclusivos ou utilize o recurso de filas múltiplas especificando um prefixo; por exemplo, BROKERCCSUBQ(SYSTEM.JMS.ND.CC.MySubQueues.*).

Serviço de Internacionalização

Defeito 110993.RN: Tratamento de tipos TimeZone não-suportados

Neste release, o Serviço de Internacionalização não suporta tipos TimeZone Java 2 SDK diferentes de java.util.SimpleTimeZone. Os tipos TimeZone não-suportados mapeiam silenciosamente para o SimpleTimeZone padrão quando fornecidos para métodos de API de serviço. Isto apresenta os seguintes efeitos:

Questões Relacionadas ao Idioma Nacional

Defeito 114777: O readme que não está em inglês não pode ser aberto (apenas HP-UX)

No HP-UX Versão 11.11, apenas a versão do locale inglês do Netscape é fornecida como um aplicativo padrão. Portanto, quando concluir uma instalação que não seja em inglês do WebSphere Application Server, o arquivo README não pode ser aberto.

Solução alternativa: A partir de um prompt de comandos, digite o seguinte comando para abrir o README:

netscape [WAS_HOME]/Enterprise/readme/xx_XX/readme.htm

em que xx_XX é um dos seguintes:

de_DE alemão
en_US inglês
es_ES espanhol
fr_FR francês
it_IT italiano
ja_JP japonês
ko_KR coreano
pt_BR português brasileiro
zh_CN chinês simplificado
zh_TW chinês tradicional

Defeito 111350.RN : Caracteres danificados na janela do DOS (Windows)

Ao executar comandos em uma janela do DOS, alguns caracteres nas mensagens de saída são danificados.

Solução alternativa: Redirecione o comando do DOS para um arquivo de saída e exiba o arquivo de saída utilizando o editor Write do Windows.