Dicas de relacionamentos e solução de problemas de EJBDEPLOY
Utilize estas informações para resolver problemas relacionados ao EJBDEPLOY.
![[z/OS]](../images/ngzos.gif)
DB2 for z/OS Versão 7.x
DSNT408I SQLCODE = -613, ERRO: A CHAVE PRIMÁRIA OU UMA RESTRIÇÃO EXCLUSIVA É MUITO LONGA OU TEM MUITAS COLUNAS DSNT418I SQLSTATE = 54008 SQLSTATE RETURN CODEEste problema pode ser visto quando as chaves primárias criadas para os dois beans relacionados tiverem chaves primárias que são cadeias. Isso resulta no composto ser formato por 2 chaves primárias varchar(250) chegando a um total de 500, que é maior do que o máximo de 254 do DB2 for z/OS versão 7.x.
- Os mapeamentos de cima para baixo são uma orientação e devem ser revisados com o DBA.
- Os esquemas criados de cima para baixo por EJBDeploy foram projetados apenas para teste, e como uma diretriz para o esquema real necessário. O uso do mapeamento meet-in-the-middle não apresenta este problema.
- O problema de restrição de chave composta não ocorre ao usar o DB2 V8, que tem um comprimento de chaves de, no máximo, 2 K.
EJBDEPLOY_JVM_ARGS:
Configure a propriedade EJBDEPLOY_JVM_ARGS para substituir opções da Java Virtual Machine (JVM) que são transmitidas ao código que implementa EJBs (ejbdeploy.sh). Defina essa propriedade em uma das seguintes localizações: deploymentmanager/bin/setupCmdLine.sh ou appServerHome/bin/setupCmdLine.sh
Por exemplo, a seguir é especificado que o SQL não qualificado deve ser gerado:
export EJBDEPLOY_JVM_ARGS="-DEJBDEPLOY_GENERATE_UNQUALIFIED_SQL=true"
O conversor definido para a chave primária não será chamado no seu valor de chave estrangeira
O mapeamento de campos de chaves primárias a colunas de banco de dados pode usar um conversor para transformar os valores das chaves. Se um bean CMP (Container-Managed Persistence) usar um conversor para mapear sua chave primária, e se o bean tiver um relacionamento em que o bean na outra extremidade mantenha uma chave estrangeira, o mapeamento para a chave estrangeira não utilizará o conversor.
Nenhum mapeamento de tipo definido de Java datatype1 para Banco de Dados datatype2Durante o tempo de execução, o aplicativo não localiza o bean CMP na outra extremidade do relacionamento.
Para contornar esta limitação, defina a sua própria chave estrangeira na tabela do banco de dados, e crie um mapeamento que utilize o mesmo conversor como definido para a chave primária nos beans corporativos na outra extremidade do seu relacionamento.