Loading ...
Sorry, an error occurred while loading the content.

Re: [riojug] Concorrencia com Hibernate

Expand Messages
  • Marco Duarte
    Juarez, A aplicação usa Struts, Hibernate... O uso de syncronized é para que o método quando executado garanta que o outro aguarde pelo seu termino. O
    Message 1 of 9 , Mar 31, 2007
    • 0 Attachment
      Juarez,
       
      A aplicação usa Struts, Hibernate... O uso de syncronized é para que o  método quando executado garanta que o outro aguarde pelo seu termino. O problema que tenho uma carga grande de gravação por diversos usuario.
       
      abraços
      Marco Antonio
       
      ----- Original Message -----
      Sent: Saturday, March 31, 2007 10:59 PM
      Subject: Re: [riojug] Concorrencia com Hibernate

      Oi Marco,

      Nao esta claro qual framework voce esta usando, mas por que voce esta usando metodos synchronized?

      Alem disso, voce usa stateless session ejbs para iniciar transacoes? Qual atributo voce usa? Required?

      Tipo, voce tem um facade EJB com Hibernate? Como voce inicia as transacoes e qual atributo usa?

      Usa Spring?

      []'s

      Juarez Jr


      On 3/31/07, Marco Duarte <marcoduarte@ dtecconsultoria. com.br> wrote:

      Olá, Companheiros,
       
      Estou no momento numa aplicação a nivel Brasil, com acesso por Estado, onde tenho percebido alguns problemas a nivel de acesso a tabelas no BD-SqlServer onde gostaria da opinião ou sugestão dos colegas a respeito.
       
      O caso é o seguinte: Mais de um usuário acionando uma thread (para cada) que executa um processamento longo (1h). A caracteristica dessa aplicação é cada thread estar gravando/lendo numa mesma tabela. Ai, ao longo do processo, em momentos distintos, uma delas recebe "java.Sql.SQLExcepti on: Violation og Primary Key constraint - cannot insert duplicate key", sendo que a chave primaria é "Auto-Increment".
       
      Olhem só: O método de gravação está com "Sincronized" e envolvido num "Transaction".
       
      O que mais tenho que fazer para garantir a sincronização
      ou esse procedimento não é indicado p/ Hibernate
      ou o quê não estou e devo fazer?
       
      Valeu, à todos
      Marco Duarte




      --
      Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

      Sun Certified Programmer for Java 2 Platform 1.2
      Sun Certified Web Component Developer for J2EE Platform 1.3
      Sun Certified Web Component Developer for J2EE Platform 1.4
      Sun Certified Business Component Developer for J2EE Platform 1.3
      Sun Certified Enterprise Architect for J2EE Platform - Part I
      Sun Certified Programmer for Java 2 Platform 5.0
      Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
      Sun Certified Associate for the Java 2 Platform 1.0

      E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
      MGJUG: juarez.barbosa@ mgjug.com. br
      GSM Mobile: +5531 9208 5948


      No virus found in this incoming message.
      Checked by AVG Free Edition.
      Version: 7.5.446 / Virus Database: 268.18.23/740 - Release Date: 30/3/2007 13:15
    • Luís Fernando Orleans
      Marco, Eu também achei estranho o fato de a chave primária ser do tipo AUTO_INCREMENT. Como funciona a aplicação? Existe algum acesso ao banco para pegar a
      Message 2 of 9 , Apr 1, 2007
      • 0 Attachment

        Marco,

         

        Eu também achei estranho o fato de a chave primária ser do tipo AUTO_INCREMENT. Como funciona a aplicação? Existe algum acesso ao banco para pegar a próxima chave primária? Tipo,

         

        SELECT para pegar a chave primária;

        INSERT na tabela

         

        Se a sequência for essa, o Hibernate pode estar fazendo cache do resultado da consulta que retorna a chave primária. E isso explicaria a violação da constraint.

         

        []s

        Luís Fernando

         


        From: riojug@yahoogroups.com [mailto:riojug@yahoogroups.com] On Behalf Of Marco Duarte
        Sent: domingo, 1 de Abril de 2007 5:37
        To: riojug@yahoogroups.com
        Subject: Re: [riojug] Concorrencia com Hibernate

         

        Juarez,

         

        A aplicação usa Struts, Hibernate... O uso de syncronized é para que o  método quando executado garanta que o outro aguarde pelo seu termino. O problema que tenho uma carga grande de gravação por diversos usuario.

         

        abraços

        Marco Antonio

         

        ----- Original Message -----

        Sent: Saturday, March 31, 2007 10:59 PM

        Subject: Re: [riojug] Concorrencia com Hibernate

         

        Oi Marco,

        Nao esta claro qual framework voce esta usando, mas por que voce esta usando metodos synchronized?

        Alem disso, voce usa stateless session ejbs para iniciar transacoes? Qual atributo voce usa? Required?

        Tipo, voce tem um facade EJB com Hibernate? Como voce inicia as transacoes e qual atributo usa?

        Usa Spring?

        []'s

        Juarez Jr

        On 3/31/07, Marco Duarte <marcoduarte@ dtecconsultoria. com.br> wrote:

        Olá, Companheiros,

         

        Estou no momento numa aplicação a nivel Brasil, com acesso por Estado, onde tenho percebido alguns problemas a nivel de acesso a tabelas no BD-SqlServer onde gostaria da opinião ou sugestão dos colegas a respeito.

         

        O caso é o seguinte: Mais de um usuário acionando uma thread (para cada) que executa um processamento longo (1h). A caracteristica dessa aplicação é cada thread estar gravando/lendo numa mesma tabela. Ai, ao longo do processo, em momentos distintos, uma delas recebe "java.Sql.SQLExcept i on: Violation og Primary Key constraint - cannot insert duplicate key", sendo que a chave primaria é "Auto-Increment" .

         

        Olhem só: O método de gravação está com "Sincronized" e envolvido num "Transaction" .

         

        O que mais tenho que fazer para garantir a sincronização

        ou esse procedimento não é indicado p/ Hibernate

        ou o quê não estou e devo fazer?

         

        Valeu, à todos

        Marco Duarte




        --
        Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

        Sun Certified Programmer for Java 2 Platform 1.2
        Sun Certified Web Component Developer for J2EE Platform 1.3
        Sun Certified Web Component Developer for J2EE Platform 1.4
        Sun Certified Business Component Developer for J2EE Platform 1.3
        Sun Certified Enterprise Architect for J2EE Platform - Part I
        Sun Certified Programmer for Java 2 Platform 5.0
        Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
        Sun Certified Associate for the Java 2 Platform 1.0

        E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
        MGJUG: juarez.barbosa@ mgjug.com. br
        GSM Mobile: +5531 9208 5948

        size=2 width="100%" align=center>

        No virus found in this incoming message.
        Checked by AVG Free Edition.
        Version: 7.5.446 / Virus Database: 268.18.23/740 - Release Date: 30/3/2007 13:15

      • Marco Duarte
        Oi, Luis, O codigo da chave é: // ------------------------- Métodos obrigatórios -------------------------- /** * Recupera a chave primária (identificador)
        Message 3 of 9 , Apr 1, 2007
        • 0 Attachment
          Oi, Luis,
           
          O codigo da chave é:
           // ------------------------- Métodos obrigatórios --------------------------
           /**
            * Recupera a chave primária (identificador) do objeto
            * @... column="id" type="java.lang.Long" generator-class="increment"
            * @return O identificador único do objeto
            */
           public Long getId() {
            return id;
           }
          - Não existe a situacao colocada referente  a proxima chave.
          A aplicação usa "save" sem especificar "set" para o id.
           
          abraço
          Marco Antonio
           
           
          ----- Original Message -----
          Sent: Sunday, April 01, 2007 9:30 AM
          Subject: RE: [riojug] Concorrencia com Hibernate

          Marco,

          Eu também achei estranho o fato de a chave primária ser do tipo AUTO_INCREMENT. Como funciona a aplicação? Existe algum acesso ao banco para pegar a próxima chave primária? Tipo,

          SELECT para pegar a chave primária;

          INSERT na tabela

          Se a sequência for essa, o Hibernate pode estar fazendo cache do resultado da consulta que retorna a chave primária. E isso explicaria a violação da constraint.

          []s

          Luís Fernando


          From: riojug@yahoogroups. com [mailto:riojug@ yahoogroups. com] On Behalf Of Marco Duarte
          Sent: domingo, 1 de Abril de 2007 5:37
          To: riojug@yahoogroups. com
          Subject: Re: [riojug] Concorrencia com Hibernate

          Juarez,

          A aplicação usa Struts, Hibernate... O uso de syncronized é para que o  método quando executado garanta que o outro aguarde pelo seu termino. O problema que tenho uma carga grande de gravação por diversos usuario.

          abraços

          Marco Antonio

          ----- Original Message -----

          Sent: Saturday, March 31, 2007 10:59 PM

          Subject: Re: [riojug] Concorrencia com Hibernate

          Oi Marco,

          Nao esta claro qual framework voce esta usando, mas por que voce esta usando metodos synchronized?

          Alem disso, voce usa stateless session ejbs para iniciar transacoes? Qual atributo voce usa? Required?

          Tipo, voce tem um facade EJB com Hibernate? Como voce inicia as transacoes e qual atributo usa?

          Usa Spring?

          []'s

          Juarez Jr

          On 3/31/07, Marco Duarte <marcoduarte@ dtecconsultoria. com.br> wrote:

          Olá, Companheiros,

          Estou no momento numa aplicação a nivel Brasil, com acesso por Estado, onde tenho percebido alguns problemas a nivel de acesso a tabelas no BD-SqlServer onde gostaria da opinião ou sugestão dos colegas a respeito.

          O caso é o seguinte: Mais de um usuário acionando uma thread (para cada) que executa um processamento longo (1h). A caracteristica dessa aplicação é cada thread estar gravando/lendo numa mesma tabela. Ai, ao longo do processo, em momentos distintos, uma delas recebe "java.Sql.SQLExcept i on: Violation og Primary Key constraint - cannot insert duplicate key", sendo que a chave primaria é "Auto-Increment" .

          Olhem só: O método de gravação está com "Sincronized" e envolvido num "Transaction" .

          O que mais tenho que fazer para garantir a sincronização

          ou esse procedimento não é indicado p/ Hibernate

          ou o quê não estou e devo fazer?

          Valeu, à todos

          Marco Duarte




          --
          Juarez Junior - Software Developer/Architect - Java EE/ME/SE - Forum NOKIA Champion

          Sun Certified Programmer for Java 2 Platform 1.2
          Sun Certified Web Component Developer for J2EE Platform 1.3
          Sun Certified Web Component Developer for J2EE Platform 1.4
          Sun Certified Business Component Developer for J2EE Platform 1.3
          Sun Certified Enterprise Architect for J2EE Platform - Part I
          Sun Certified Programmer for Java 2 Platform 5.0
          Sun Certified Mobile Application Developer for the Java 2 Platform Micro Edition 1.0
          Sun Certified Associate for the Java 2 Platform 1.0

          E-mail/MSN/Google Talk: juarez.barbosa@ gmail.com
          MGJUG: juarez.barbosa@ mgjug.com. br
          GSM Mobile: +5531 9208 5948


          size=2 width="100%" align=center>

          No virus found in this incoming message.
          Checked by AVG Free Edition.
          Version: 7.5.446 / Virus Database: 268.18.23/740 - Release Date: 30/3/2007 13:15


          No virus found in this incoming message.
          Checked by AVG Free Edition.
          Version: 7.5.446 / Virus Database: 268.18.24/741 - Release Date: 31/3/2007 20:54
        • fabiolnmiranda
          Marco, O problema pode estar na anotação **increment** do hibernate. Veja o tópico http://www.javafree.org/javabb/viewtopic.jbb?t=856770. Na documentação
          Message 4 of 9 , Apr 1, 2007
          • 0 Attachment
            Marco,

            O problema pode estar na anotação **increment** do hibernate. Veja o
            tópico http://www.javafree.org/javabb/viewtopic.jbb?t=856770.

            Na documentação do hibernate:

            increment: generates identifiers of type long, short or int that are
            unique only when no other process is inserting data into the same
            table. Do not use in a cluster.

            Particularmente, prefiro deixar os metadados relacionais no modelo
            entidade-relacionamento (direto no banco), e deixar o hibernate se
            virar com a anotação @GeneratedValue.

            Abs,
            Fábio.

            --- In riojug@yahoogroups.com, "Marco Duarte" <marcoduarte@...>
            wrote:
            >
            > Oi, Luis,
            >
            > O codigo da chave é:
            > // ------------------------- Métodos obrigatórios ----------------
            ----------
            > /**
            > * Recupera a chave primária (identificador) do objeto
            > * @... column="id" type="java.lang.Long" generator-
            class="increment"
            > * @return O identificador único do objeto
            > */
            > public Long getId() {
            > return id;
            > }
            >
            > - Não existe a situacao colocada referente a proxima chave.
            > A aplicação usa "save" sem especificar "set" para o id.
            >
            > abraço
            > Marco Antonio
            >
            >
            > ----- Original Message -----
            > From: Luís Fernando Orleans
            > To: riojug@yahoogroups.com
            > Sent: Sunday, April 01, 2007 9:30 AM
            > Subject: RE: [riojug] Concorrencia com Hibernate
            >
            >
            >
            > Marco,
            >
            >
            >
            > Eu também achei estranho o fato de a chave primária ser do tipo
            AUTO_INCREMENT. Como funciona a aplicação? Existe algum acesso ao
            banco para pegar a próxima chave primária? Tipo,
            >
            >
            >
            > SELECT para pegar a chave primária;
            >
            > INSERT na tabela
            >
            >
            >
            > Se a sequência for essa, o Hibernate pode estar fazendo cache do
            resultado da consulta que retorna a chave primária. E isso
            explicaria a violação da constraint.
            >
            >
            >
            > []s
            >
            > Luís Fernando
            >
            >
            >
            >
            > -------------------------------------------------------------------
            -----------
            >
            > From: riojug@yahoogroups.com [mailto:riojug@yahoogroups.com] On
            Behalf Of Marco Duarte
            > Sent: domingo, 1 de Abril de 2007 5:37
            > To: riojug@yahoogroups.com
            > Subject: Re: [riojug] Concorrencia com Hibernate
            >
            >
            >
            > Juarez,
            >
            >
            >
            > A aplicação usa Struts, Hibernate... O uso de syncronized é para
            que o método quando executado garanta que o outro aguarde pelo seu
            termino. O problema que tenho uma carga grande de gravação por
            diversos usuario.
            >
            >
            >
            > abraços
            >
            > Marco Antonio
            >
            >
            >
            > ----- Original Message -----
            >
            > From: Juarez Junior
            >
            > To: riojug@yahoogroups.com
            >
            > Sent: Saturday, March 31, 2007 10:59 PM
            >
            > Subject: Re: [riojug] Concorrencia com Hibernate
            >
            >
            >
            > Oi Marco,
            >
            > Nao esta claro qual framework voce esta usando, mas por que
            voce esta usando metodos synchronized?
            >
            > Alem disso, voce usa stateless session ejbs para iniciar
            transacoes? Qual atributo voce usa? Required?
            >
            > Tipo, voce tem um facade EJB com Hibernate? Como voce inicia
            as transacoes e qual atributo usa?
            >
            > Usa Spring?
            >
            > []'s
            >
            > Juarez Jr
            >
            >
            >
            > On 3/31/07, Marco Duarte <marcoduarte@...> wrote:
            >
            > Olá, Companheiros,
            >
            >
            >
            > Estou no momento numa aplicação a nivel Brasil, com acesso por
            Estado, onde tenho percebido alguns problemas a nivel de acesso a
            tabelas no BD-SqlServer onde gostaria da opinião ou sugestão dos
            colegas a respeito.
            >
            >
            >
            > O caso é o seguinte: Mais de um usuário acionando uma thread
            (para cada) que executa um processamento longo (1h). A
            caracteristica dessa aplicação é cada thread estar gravando/lendo
            numa mesma tabela. Ai, ao longo do processo, em momentos distintos,
            uma delas recebe "java.Sql.SQLException: Violation og Primary Key
            constraint - cannot insert duplicate key", sendo que a chave
            primaria é "Auto-Increment".
            >
            >
            >
            > Olhem só: O método de gravação está com "Sincronized" e
            envolvido num "Transaction".
            >
            >
            >
            > O que mais tenho que fazer para garantir a sincronização
            >
            > ou esse procedimento não é indicado p/ Hibernate
            >
            > ou o quê não estou e devo fazer?
            >
            >
            >
            > Valeu, à todos
            >
            > Marco Duarte
            >
            >
            >
            >
            > --
            > Juarez Junior - Software Developer/Architect - Java EE/ME/SE -
            Forum NOKIA Champion
            >
            > Sun Certified Programmer for Java 2 Platform 1.2
            > Sun Certified Web Component Developer for J2EE Platform 1.3
            > Sun Certified Web Component Developer for J2EE Platform 1.4
            > Sun Certified Business Component Developer for J2EE Platform
            1.3
            > Sun Certified Enterprise Architect for J2EE Platform - Part I
            > Sun Certified Programmer for Java 2 Platform 5.0
            > Sun Certified Mobile Application Developer for the Java 2
            Platform Micro Edition 1.0
            > Sun Certified Associate for the Java 2 Platform 1.0
            >
            > E-mail/MSN/Google Talk: juarez.barbosa@...
            > MGJUG: juarez.barbosa@...
            > GSM Mobile: +5531 9208 5948
            >
            >
            > -------------------------------------------------------------------
            ---------
            > size=2 width="100%" align=center>
            > No virus found in this incoming message.
            > Checked by AVG Free Edition.
            > Version: 7.5.446 / Virus Database: 268.18.23/740 - Release
            Date: 30/3/2007 13:15
            >
            >
            >
            >
            >
            >
            > -------------------------------------------------------------------
            -----------
            >
            >
            > No virus found in this incoming message.
            > Checked by AVG Free Edition.
            > Version: 7.5.446 / Virus Database: 268.18.24/741 - Release Date:
            31/3/2007 20:54
            >
          • Marco Duarte
            Obrigado, Fábio,... Vou continuar pesquisando essa questão. abraço Marco Duarte ... From: fabiolnmiranda To: riojug@yahoogroups.com Sent: Sunday, April 01,
            Message 5 of 9 , Apr 1, 2007
            • 0 Attachment
              Obrigado, Fábio,...
               
              Vou continuar pesquisando essa questão.
               
              abraço
              Marco Duarte 
              ----- Original Message -----
              Sent: Sunday, April 01, 2007 8:08 PM
              Subject: [riojug] Re: Concorrencia com Hibernate

              Marco,

              O problema pode estar na anotação **increment* * do hibernate. Veja o
              tópico http://www.javafree .org/javabb/ viewtopic. jbb?t=856770.

              Na documentação do hibernate:

              increment: generates identifiers of type long, short or int that are
              unique only when no other process is inserting data into the same
              table. Do not use in a cluster.

              Particularmente, prefiro deixar os metadados relacionais no modelo
              entidade-relacionam ento (direto no banco), e deixar o hibernate se
              virar com a anotação @GeneratedValue.

              Abs,
              Fábio.

              --- In riojug@yahoogroups. com, "Marco Duarte" <marcoduarte@ ...>
              wrote:
              >
              > Oi, Luis,
              >
              > O codigo da chave é:
              > // ------------ --------- ---- Métodos obrigatórios ------------ ----
              ----------
              > /**
              > * Recupera a chave primária (identificador) do objeto
              > * @... column="id" type="java.lang. Long" generator-
              class="increment"
              > * @return O identificador único do objeto
              > */
              > public Long getId() {
              > return id;
              > }
              >
              > - Não existe a situacao colocada referente a proxima chave.
              > A aplicação usa "save" sem especificar "set" para o id.
              >
              > abraço
              > Marco Antonio
              >
              >
              > ----- Original Message -----
              > From: Luís Fernando Orleans
              > To: riojug@yahoogroups. com
              > Sent: Sunday, April 01, 2007 9:30 AM
              > Subject: RE: [riojug] Concorrencia com Hibernate
              >
              >
              >
              > Marco,
              >
              >
              >
              > Eu também achei estranho o fato de a chave primária ser do tipo
              AUTO_INCREMENT. Como funciona a aplicação? Existe algum acesso ao
              banco para pegar a próxima chave primária? Tipo,
              >
              >
              >
              > SELECT para pegar a chave primária;
              >
              > INSERT na tabela
              >
              >
              >
              > Se a sequência for essa, o Hibernate pode estar fazendo cache do
              resultado da consulta que retorna a chave primária. E isso
              explicaria a violação da constraint.
              >
              >
              >
              > []s
              >
              > Luís Fernando
              >
              >
              >
              >
              > ------------ --------- --------- --------- --------- --------- -
              -----------
              >
              > From: riojug@yahoogroups. com [mailto:riojug@yahoogroups. com] On
              Behalf Of Marco Duarte
              > Sent: domingo, 1 de Abril de 2007 5:37
              > To: riojug@yahoogroups. com
              > Subject: Re: [riojug] Concorrencia com Hibernate
              >
              >
              >
              > Juarez,
              >
              >
              >
              > A aplicação usa Struts, Hibernate... O uso de syncronized é para
              que o método quando executado garanta que o outro aguarde pelo seu
              termino. O problema que tenho uma carga grande de gravação por
              diversos usuario.
              >
              >
              >
              > abraços
              >
              > Marco Antonio
              >
              >
              >
              > ----- Original Message -----
              >
              > From: Juarez Junior
              >
              > To: riojug@yahoogroups. com
              >
              > Sent: Saturday, March 31, 2007 10:59 PM
              >
              > Subject: Re: [riojug] Concorrencia com Hibernate
              >
              >
              >
              > Oi Marco,
              >
              > Nao esta claro qual framework voce esta usando, mas por que
              voce esta usando metodos synchronized?
              >
              > Alem disso, voce usa stateless session ejbs para iniciar
              transacoes? Qual atributo voce usa? Required?
              >
              > Tipo, voce tem um facade EJB com Hibernate? Como voce inicia
              as transacoes e qual atributo usa?
              >
              > Usa Spring?
              >
              > []'s
              >
              > Juarez Jr
              >
              >
              >
              > On 3/31/07, Marco Duarte <marcoduarte@ ...> wrote:
              >
              > Olá, Companheiros,
              >
              >
              >
              > Estou no momento numa aplicação a nivel Brasil, com acesso por
              Estado, onde tenho percebido alguns problemas a nivel de acesso a
              tabelas no BD-SqlServer onde gostaria da opinião ou sugestão dos
              colegas a respeito.
              >
              >
              >
              > O caso é o seguinte: Mais de um usuário acionando uma thread
              (para cada) que executa um processamento longo (1h). A
              caracteristica dessa aplicação é cada thread estar gravando/lendo
              numa mesma tabela. Ai, ao longo do processo, em momentos distintos,
              uma delas recebe "java.Sql.SQLExcept ion: Violation og Primary Key
              constraint - cannot insert duplicate key", sendo que a chave
              primaria é "Auto-Increment" .
              >
              >
              >
              > Olhem só: O método de gravação está com "Sincronized" e
              envolvido num "Transaction" .
              >
              >
              >
              > O que mais tenho que fazer para garantir a sincronização
              >
              > ou esse procedimento não é indicado p/ Hibernate
              >
              > ou o quê não estou e devo fazer?
              >
              >
              >
              > Valeu, à todos
              >
              > Marco Duarte
              >
              >
              >
              >
              > --
              > Juarez Junior - Software Developer/Architect - Java EE/ME/SE -
              Forum NOKIA Champion
              >
              > Sun Certified Programmer for Java 2 Platform 1.2
              > Sun Certified Web Component Developer for J2EE Platform 1.3
              > Sun Certified Web Component Developer for J2EE Platform 1.4
              > Sun Certified Business Component Developer for J2EE Platform
              1.3
              > Sun Certified Enterprise Architect for J2EE Platform - Part I
              > Sun Certified Programmer for Java 2 Platform 5.0
              > Sun Certified Mobile Application Developer for the Java 2
              Platform Micro Edition 1.0
              > Sun Certified Associate for the Java 2 Platform 1.0
              >
              > E-mail/MSN/Google Talk: juarez.barbosa@ ...
              > MGJUG: juarez.barbosa@ ...
              > GSM Mobile: +5531 9208 5948
              >
              >
              > ------------ --------- --------- --------- --------- --------- -
              ---------
              > size=2 width="100%" align=center>
              > No virus found in this incoming message.
              > Checked by AVG Free Edition.
              > Version: 7.5.446 / Virus Database: 268.18.23/740 - Release
              Date: 30/3/2007 13:15
              >
              >
              >
              >
              >
              >
              > ------------ --------- --------- --------- --------- --------- -
              -----------
              >
              >
              > No virus found in this incoming message.
              > Checked by AVG Free Edition.
              > Version: 7.5.446 / Virus Database: 268.18.24/741 - Release Date:
              31/3/2007 20:54
              >


              No virus found in this incoming message.
              Checked by AVG Free Edition.
              Version: 7.5.446 / Virus Database: 268.18.24/741 - Release Date: 31/3/2007 20:54
            Your message has been successfully submitted and would be delivered to recipients shortly.