Você está offline; aguardando reconexão

0x000006ba erro se você abrir uma fila existente em um servidor virtual

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 305794
Sintomas
Se você abrir uma fila existente em um servidor virtual, você recebe um erro
0x000006ba
.
Causa
Um recurso de cluster DLL executado no contexto do nó local. No entanto, se você gerar um novo processo da DLL do recurso, o novo processo é executado no contexto do cluster. Mensagem de enfileiramento de mensagens (também conhecido como MSMQ) chamadas é feitas do processo de novo.
Como Contornar
Para contornar esse problema, execute estas etapas:
  1. Criar uma DLL de recurso personalizado no Microsoft Visual Studio 6.0.
  2. Adicione o seguinte código para o loop do...while() na chamada xxxOnlineThread() (detecção de erro será removida do exemplo de código):
    RESOURCE_STATUS      resourceStatus;DWORD                nStatus;STARTUPINFO         StartupInfo;PROCESS_INFORMATION Process;LPWSTR              pszNameOfPropInError;LPWSTR              pszExpandedDir = NULL;LPWSTR              pszExpandedCommand = NULL;// Create Process parametersLPVOID   Environment = NULL;HANDLE processToken;HANDLE currentProcess;HANDLE hEventLog;DWORD nStatus = ResUtilGetPropertiesToParameterBlock(               pResourceEntry->hkeyParameters,               GenAppResourcePrivateProperties,               reinterpret_cast<LPBYTE>( &pResourceEntry->props ),               TRUE, // CheckForRequiredProperties               &pszNameOfPropInError               );// Perform resource-specific initialization before starting the app.if ( pResourceEntry->props.nUseNetworkName ) {// Create the new environment with the simulated net name.LPVOID   Environment = NULL;Environment = ResUtilGetEnvironmentWithNetName(pResourceEntry->hResource);} else {// get the current process token. If it fails, revert to using just the// system environment areacurrentProcess = GetCurrentProcess();OpenProcessToken(currentProcess, MAXIMUM_ALLOWED, &processToken);// Clone the current environment, picking up any changes that might have// been made after resmon startedCreateEnvironmentBlock(&Environment, processToken, FALSE);// Expand the current directory parameterif (pResourceEntry->props.pszCurrentDirectory) {pszExpandedDir = xxxExpandEnvironmentStrings(pResourceEntry->props.pszCurrentDirectory);} // Try to start the new process				CreateProcess(<Enter Executable Name Here>, NULL, NULL, NULL, FALSE,				CREATE_UNICODE_ENVIRONMENT, Environment, pszExpandedDir, &StartupInfo,				&Process);
Observação O "
xxx
" na chamada de função (
pszExpandedDir = xxxExpandEnvironmentStrings(pResourceEntry->props.pszCurrentDirectory
) corresponde ao nome da DLL do recurso.

Este código faz o seguinte:
  • O código configura o bloco de ambiente com a propriedade UseNetnameAsComputerName (
    ResUtilGetEnvironmentWithNetName(...)
    ).
  • O código salva essas informações para o bloco de ambiente para o processo (
    CreateEnvironmentBlock(...)
    ).
  • O código cria um novo processo é executado no contexto do servidor virtual (
    CreateProcess(...)
    ).

Faça suas chamadas enfileiramento nesse novo processo.
Situação
Esse comportamento é por design.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 305794 - Última Revisão: 02/23/2007 06:08:34 - Revisão: 2.1

Microsoft Message Queuing 2.0

  • kbmt kbprb KB305794 KbMtpt
Comentários
ocument.getElementsByTagName("head")[0].appendChild(m);