Well - to start off DBIx::Sequence doesn't work with Sybase (and probably won't work with MS-SQL).

Running it without creating the tables first generates the following error:

ct_result(ct_dynamic(CS_PREPARE)) returned -205 at /usr/lib/perl5/site +_perl/5.6.0/i386-linux/DBD/Sybase.pm line 105. DBIx::Sequence: Server message number=208 severity=16 state=1 line=1 s +erver=trollprocedure=DBD1text=dbix_sequence_state not found. Specify +owner.objectname or use sp_help to check whether the object exists (s +p_help may produce lots of output). at ./sequence.pl line 5

Creating the tables manually and running a basic loop to get new IDs generates the following error:

ct_param() failed! at /usr/lib/perl5/site_perl/5.6.0/DBIx/Sequence.pm +line 257. DBIx::Sequence: OpenClient message: LAYER = (1) ORIGIN = (1) SEVERITY += (1) NUMBER = (16) Message String: ct_param(): user api layer: external error: This routi +ne cannot be called while results are pending for a command that has +been sent to the server. at ./sequence.pl line 11
The reason for this is that this module doesn't properly fetch all results after executing queries - and this leaves the various statement handles that it creates in an unstable state when used with DBD::Sybase.

In addition, pre-preparing 5 or 6 queries works really well with Oracle, but is not a good idea with Sybase, because this will open 5 or 6 connections to the server for each instance of DBIx::Sequence.

After patching the code so that it will work with Sybase I ran three concurrent processes that did nothing but fetch new IDs. The result was that only one process actually got any IDs - the other two were effectively locked out. Admittedly this is an extreme use of the module, but it does show the limits that this technique can have.

Michael


In reply to Re^4: portable mysql auto_increment by mpeppler
in thread portable mysql auto_increment by schweini

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.