Ú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:
Pré-requisitos
Instalando Serviços Corporativos
Pré-visualização da Tecnologia BPBeans (Business
Process Beans)
Defeitos e Soluções Alternativas
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.
Você pode encontrar instruções de instalação completas no Enterprise Services Installation Guide (pdf).
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.
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.
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.
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.
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.
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
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.
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.
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:
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.
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
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.
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
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.
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.
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.
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:
<!DOCTYPE brb SYSTEM "brb.dtd"> <brb>
Inclua a linha a seguir no fim do arquivo:
</brb>
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.
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.
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:
locale -a
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 +
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:
cdspop
, para
inicializar o banco de dados cds, o qual é colocado no diretório SOMCBASE/data.
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() ...
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.
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++.
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.
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
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.
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.
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 (\\).
JMSAdmin.config
.
C:\temp\JNDI-Directory
.
JMSAdmin.bat
e ligue seu
ConnectionFactories e Queues/Topics como você faria normalmente.
http://localhost:9090/admin
).
MQSeriesInstallDir\java\lib\fscontext.jar;
MQSeriesInstallDir\java\lib\providerutil.jar;
MQFscontextProvider
com.sun.jndi.fscontext.RefFSContextFactory
file:/C:/temp/JNDI-Directory
Connection Factory:
Nome: ConnectionFactory
Nome JNDI: Sample/JMS/ConnectionFactory
Nome Externo JNDI (Windows): Sample\JMS\ConnectionFactory
Nome Externo JNDI (Unix): Sample/JMS/ConnectionFactory
Nome: Q1
Nome JNDI: Sample/JMS/Q1
Nome Externo JNDI (Windows): Sample\JMS\Q1
Nome Externo JNDI (Unix): Sample/JMS/Q1
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.
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.
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:
com.sun.jndi.ldap.LdapCtxFactory
(para LDAP)
com.sun.jndi.fscontext.RefFSContextFactory
(para contexto do sistema de arquivos)
com.ibm.ejs.ns.jndi.CNInitialContextFactory
(para trabalhar com o repositório de nomenclatura do WebSphere)
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.
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
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.
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.
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
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
.
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.*)
.
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:
java.util.SimpleTimeZone
mapearão para o
java.util.SimpleTimeZone
padrão do processo de
contenção.
java.util.SimpleTimeZone
.
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
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.