Condições: DISABLED, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LOADING, NOTAUTH, NOTFND, NOTOPEN, SYSIDERR
Este comando é threadsafe se o arquivo ao qual se refere for:
Definido como remoto e a função do comando é enviada por meio de uma conexão IPIC para uma região CICS remota.
Definido como VSAM ou RLS local.
Este comando não é thread-safe se o arquivo ao qual se refere for:
Definido como remoto e a função do comando é enviada por meio de uma conexão não IPIC.
Definido como uma tabela de dados compartilhados, tabela de dados do recurso de acoplamento ou arquivo BDAM.
Descrição:
STARTBR especifica o registro em um arquivo, ou em uma tabela de dados, em um sistema local ou remoto, onde você deseja que a navegação comece. Nenhum registro é lido até que um comando READNEXT (ou, para VSAM e tabelas, um comando READPREV) seja executado.
As seguintes operações de navegação são possíveis. Uma navegação direta é uma navegação do conjunto de dados de base usando a chave primária.
- Uma navegação direta de um conjunto de dados sequenciados de chave (KSDS ou tabela de dados) por chave de registro.
- Uma navegação direta de um conjunto de dados sequenciados de entrada (ESDS) por endereço de byte relativo (RBA).
- Uma navegação direta de um conjunto de dados de registro relativo (RRDS) por número de registro relativo (RRN).
- Uma navegação por um conjunto de dados sequenciados de chave (KSDS) usando um caminho de índice alternativo.
- Uma navegação de um conjunto de dados sequenciados de entrada (ESDS) usando um caminho de índice alternativo. Nesse caso, um ESDS é navegado por chave da mesma maneira que um KSDS. Algumas das opções que não são válidas para uma navegação ESDS direta são válidas para uma navegação de índice alternativo.
- Uma navegação de um KSDS por RBA.
As opções especificadas no comando STARTBR definem as características que se aplicam em toda a operação de navegação subsequente. Especificamente, se GENERIC ou GTEQ forem especificados, eles serão usados não apenas para determinar o ponto inicial da navegação, mas também sempre que o valor de RIDFLD for alterado antes de emitir um comando READNEXT.
Se você especificar a opção RBA, ela se aplicará a cada comando READNEXT ou READPREV na navegação e fará com que o CICS retorne o endereço de byte relativo de cada registro recuperado.
Nenhuma dessas opções pode ser alterada durante uma navegação, exceto por meio do comando RESETBR.
Se uma solicitação STARTBR especifica a chave precisa na qual a navegação deve começar (ou seja, especifica uma chave completa e a palavra-chave EQUAL), o registro retornado no seguinte READNEXT (ou READPREV) pode não ser o mesmo que o registro especificado por o STARTBR para um arquivo aberto no modo VSAM NSR ou RLS. Isso pode ocorrer porque o registro inicial especificado no comando STARTBR pode ser excluído por outra transação entre a conclusão do STARTBR e um READNEXT ou READPREV sendo emitido. No modo VSAM LSR, o registro inicial não pode ser excluído entre STARTBR e READNEXT.
Uma navegação pode terminar usando os comandos ENDBR, SYNCPOINT ou SYNCPOINT ROLLBACK. Além disso, um ponto de sincronização implícito no final da tarefa encerra a navegação.
Opções:
DEBKEY
(BDAM bloqueado) especifica que o desbloqueio deve ocorrer por chave. Se nem DEBREC nem DEBKEY for especificado, o desbloqueio não ocorrerá.
DEBREC
(BDAM bloqueado) especifica que o desbloqueio deve ocorrer por registro relativo (relativo a zero). Se nem DEBREC nem DEBKEY for especificado, o desbloqueio não ocorrerá.
EQUAL
(VSAM e tabela de dados) especifica que a pesquisa é satisfeita apenas por um registro com a mesma chave (completa ou genérica) que a especificada na opção RIDFLD.
Esta opção é o campo padrão para uma navegação ESDS direta.
FILE ( nome do arquivo )
especifica o nome do arquivo a ser acessado.
Se SYSID for especificado, o conjunto de dados ao qual este arquivo se refere é considerado como estando em um sistema remoto, independentemente de o nome estar definido para o CICS. Caso contrário, a definição do recurso é usada para descobrir se o conjunto de dados está em um sistema local ou remoto.
GENÉRICO
(VSAM KSDS, caminho ou tabela de dados) especifica que a chave de pesquisa é uma chave genérica cujo comprimento é especificado na opção KEYLENGTH. A busca por um registro é satisfeita quando é encontrado um registro que possui os mesmos caracteres iniciais (chave genérica) que os especificados.
GTEQ
(VSAM ou tabela de dados) especifica que, se a busca por um registro que possui a mesma chave (completa ou genérica) que aquela especificada na opção RIDFLD não tiver sucesso, o primeiro registro que possui uma chave maior satisfaz a busca.
Esta opção é o padrão para navegar diretamente por um KSDS ou RRDS. Não é válido para navegar diretamente em um ESDS, embora seja válido para navegar em um ESDS usando um caminho.
KEYLENGTH ( valor de dados )
especifica o comprimento (binário de meia palavra) da chave que foi especificada na opção RIDFLD, exceto quando RBA ou RRN é especificado, caso em que KEYLENGTH não é válido.
Esta opção deve ser especificada se GENERIC for especificado e pode ser especificada sempre que uma chave for especificada. Se o comprimento especificado for diferente do comprimento definido para o conjunto de dados e a operação não for genérica, ocorre a condição INVREQ.
A condição INVREQ também ocorre se um comando STARTBR especificar GENERIC e o valor KEYLENGTH não for menor que o especificado na definição VSAM.
Se KEYLENGTH (0) for usado com o objeto de posicionamento no primeiro registro no conjunto de dados, a opção GTEQ também deve ser especificada. Se EQUAL for especificado explicitamente ou por padrão com KEYLENGTH (0), os resultados de STARTBR são imprevisíveis.
Para arquivos remotos, o valor KEYLENGTH pode ser especificado na definição de FILE. Se KEYLENGTH não estiver definido lá e não for especificado no programa de aplicativo, e a chave tiver mais de 4 caracteres, o valor padrão será 4.
RBA
(Conjuntos de dados de base VSAM KSDS ou ESDS ou tabelas de dados mantidas por CICS apenas, não caminhos) especifica que o campo de identificação de registro especificado na opção RIDFLD contém um endereço de byte relativo. Use esta opção apenas ao navegar em uma base ESDS ou KSDS e usar endereços de bytes relativos em vez de chaves para identificar os registros.
Você não pode usar RBA para:
Tabelas de dados mantidos pelo usuário
Tabelas de dados do recurso de acoplamento
Qualquer arquivo KSDS aberto no modo de acesso RLS
Arquivos KSDS que usam endereçamento estendido
Além disso, é recomendável não usar RBA para arquivos ESDS com mais de 4 GB. (Em vez disso, use XRBA.)
REQID ( valor dos dados )
especifica como um valor binário de meia palavra um identificador de solicitação exclusivo para uma navegação, usado para controlar várias operações de navegação no mesmo conjunto de dados ou em conjuntos de dados diferentes. Se esta opção não for especificada, um valor padrão de zero será assumido.
RIDFLD ( área de dados )
especifica o campo de identificação do registro. O conteúdo pode ser uma chave, um endereço de byte relativo ou número de registro relativo (para conjuntos de dados VSAM) ou uma referência de bloco, chave física e argumento de desbloqueio (para conjuntos de dados BDAM). Para um endereço de byte relativo ou um número de registro relativo, o formato deste campo deve ser binário de palavra inteira. Para um endereço de byte relativo, o valor RIDFLD pode ser maior ou igual a zero. Para um número de registro relativo, o valor RIDFLD pode ser maior ou igual a 1.
Consulte Identificando registros BDAM e Identificando registros VSAM para obter mais informações sobre como definir o campo de identificação de registro.
Para VSAM, um id de registro completo de X'FFs indica que a navegação deve ser posicionada no final do conjunto de dados em preparação para uma navegação para trás usando comandos READPREV.
RRN
(VSAM RRDS) especifica que o campo de identificação de registro especificado na opção RIDFLD contém um número de registro relativo. Esta opção deve ser usada apenas com arquivos que fazem referência a conjuntos de dados de registros relativos.
SYSID ( nome do sistema )
especifica o nome do sistema para o qual a solicitação é direcionada.
Se você especificar SYSID e omitir RBA e RRN, também deverá especificar KEYLENGTH.
XRBA
especifica que o campo de identificação de registro especificado na opção RIDFLD contém um endereço de byte relativo estendido. Esta opção deve ser usada ao navegar pelos registros em um conjunto de dados de endereçamento estendido ESDS.
Se você especificar XRBA em um comando STARTBR, todos os outros comandos no mesmo navegador também deverão especificar XRBA.
Os conjuntos de dados KSDS não podem ser acessados por XRBA.