On Thu, Aug 28, 2003 at 09:50:21AM -0400, Steven N. Hirsch wrote:
> 
> Tim,
> 
> I plan to beat on this over the next few days.  However, here are two 
> small changes which I've found to be necessary when working with a DB2 
> backend database.  Since making these mods all ugly messages are a thing 
> of the past.
> 
> In my opinion, it's time to throw in the towel and report the true 
> 'Active' status back to the proxy client with every call.

I'd *really* like to know under what circumstances the Active status
gets out of sync.

> I'm getting 
> hammered at work, but will attempt to code this up "Real Soon Now" <g>.

Any patch to report the server-side active status needs to a) gracefully
handle client-server version mismatches, and b) ideally implement a more
flexible protocol in general so that new features can be added and version
mismatches more gracefully handled in future.

Tim.

> Steve
> 
> 
> --- DBI-1.38/lib/DBD/Proxy.pm.orig    Tue Aug 19 20:15:28 2003
> +++ DBI-1.38/lib/DBD/Proxy.pm Thu Aug 28 09:44:22 2003
> @@ -352,8 +352,10 @@
>        $sth->{'proxy_sth'} = $rsth;
>        # If statement is a positioned update we do not want any readahead.
>        $sth->{'RowCacheSize'} = 1 if $stmt =~ /\bfor\s+update\b/i;
> -    # Since resources are used by prepared remote handle, mark us active.
> -    $sth->SUPER::STORE(Active => 1);
> +      # In a perfect world, this would be correct.  However, until a clean
> +      # universal solution is implemented for keeping the client in sync
> +      # with the backend database, refrain from making a leap of faith.
> +      # $sth->SUPER::STORE(Active => 1);
>      }
>      $sth;
>  }
> @@ -577,7 +579,9 @@
>  
>  sub finish ($) {
>      my($sth) = @_;
> -    return 1 unless $sth->SUPER::FETCH('Active');
> +    # For reasons remarked upon in disconnect() above, let the
> +    # user decide when to hit the wire.
> +    # return 1 unless $sth->SUPER::FETCH('Active');
>      my $rsth = $sth->{'proxy_sth'};
>      $sth->SUPER::STORE('Active' => 0);
>      return 0 unless $rsth; # Something's out of sync
> 
> 
> -- 
> ----------------------------------------------------------------
> Steven N. Hirsch       tie-line: 446-6557     ext: 802-769-6557
> 
> Staff Engineer                     Methodology Integration Team
> ASIC Product Development           IBM Microelectronics
> ----------------------------------------------------------------
> 

Reply via email to