The information you provide is always helpful.  Thanks to your first
response we have what we need to move forward.

Axton
On Feb 29, 2012 12:06 PM, "Mueller, Doug" <[email protected]> wrote:

> Axton,
>
> OK, the implementation was not carried to the complete degree for Oracle as
> was originally planned.  There is again discussion about why not.
>
> For ALL databases, all data tables (T/H/B all have the entry ID as a unique
> value) and ALL metadata tables (several of the ones you call out you will
> find
> have a new column in later releases that provides that unique value) have a
> unique value that should have unique index on it.
>
> Sybase and MS SQL have these unique keys all defined as primary keys.
>
> Oracle at this time did not take that final step of defining them as
> unique keys
> and just have them as unique indexes.
>
> The argument of the team was that the DB replication technology of Sybase
> and
> MS SQL required the use of primary keys so we did that.  The DB replication
> technology of Oracle just required a unique indexed field exist so we did
> that
> for Oracle and didn't go the last step as it was not required for DB
> replication.
>
> Now, you can of course add the primary key characteristic if you want to
> all of
> the tables (and it is being discussed internally).
>
>
> Now, one final challenge for you is that this work has been being done
> over a
> couple of releases and it is not fully in place for everyone until the
> 7.6.04
> release.  So, you will not have some of the work that was done for Oracle
> in
> your 7.5 installation.
>
> Sorry for the slightly incorrect information about Oracle and the primary
> key.
> We are there with other DBs and at the doorstep with Oracle with unique
> indexes
> on every table.
>
> I hope this correction is helpful,
>
> Doug Mueller
>
> -----Original Message-----
> From: Action Request System discussion list(ARSList) [mailto:
> [email protected]] On Behalf Of Axton
> Sent: Monday, February 27, 2012 1:27 PM
> To: [email protected]
> Subject: Re: Remedy Table Recreation
>
> We did not see a primary key defined for the T, H, or B tables, or the
> meta-data tables, so we created a primary key on those tables.  We
> did, however, see a unique index on all the T, H, and B tables.  We
> are rethinking our approach because in later versions of Oracle
> Streams they added an option to use a unique index, versus an explicit
> primary key, for replication purposes.
>
> I was referred to this KA on my inquiry to support:
> https://kb.bmc.com/infocenter/index?page=content&id=KA305401
>
> Which, at the end, states:
>
> "In essence this is not something that is currently available in AR
> System, the only primary keys added was for Sql Server and Sybase
> because those were the only two databases that needed primary keys for
> replication. The thought was that other databases don't need to have
> primary keys and they can be replicated just with the presence of
> unique indexes."
>
> While this appears to be true today, this was no always the case.
> This is still not true for some of the meta-data tables because they
> have neither a unique index or a primary key constraint (e.g.,
> actlink_set_char, actlink_set, filter_notify).  While replication can
> still work on these tables, it forces the database to perform a table
> scan for each replicated record, comparing the value of every column.
>
> The primary key can be defined at the time the table is created or
> after the table is created and is different from a unique index.  Take
> this DDL from a stock system for table B1:
>
> create table b1 (
>        c1 varchar2(15 byte) not null enable,
>        c158 varchar2(255 byte),
>        co158 number(15,0),
>        cc158 number(15,0))
> /
> create unique index ib1 on b1 (c1)
> /
>
> While this table has a unique constraint through index ib1, it does
> not have a primary key defined.  Compare this to the DDL for the same
> table with the primary key constraint:
>
> create table b1 (
>        c1 varchar2(15 byte) not null enable,
>        c158 varchar2(255 byte),
>        co158 number(15,0),
>        cc158 number(15,0),
>        constraint sys_pk_3933 primary key (c1)
> /
> create unique index ib1 on b1 (c1)
> /
>
> We looked to add this to the ardb.conf at the time a form is created,
> but that is a no go because the ardb.conf entries only append a suffix
> to the create table statements, at this position:
>
> create table X (columns...) <ardb.conf clause goes here>
> /
>
> This is great for storage parameters, partitioning, etc., but not so
> good for constraints.  It also sounds like the ardb.conf is obsolete,
> for all intents and purposes, since Remedy no longer drops/recreates
> the underlying tables, thus making manual modifications to the
> underlying tables characteristics persistent (safer).
>
> Thanks for taking the time to look through the code and send this
> information.  It is immensely useful and gives us the information we
> need to make the correct decision on going forward.
>
> Regards,
> Axton Grams
>
> On Mon, Feb 27, 2012 at 2:48 PM, Mueller, Doug <[email protected]>
> wrote:
> > Axton,
> >
> > By the way....
> >
> > On the other topic in your message, definition of a primary key.
> >
> > We found that a number of the replication technologies require a table
> to have
> > a primary key in order to replicate successfully.  Since every one of
> our tables
> > has a primary key -- the entry ID -- and we can define combinations of
> fields
> > for other forms -- like status history -- that are unique, we have added
> a
> > primary key to every metadata table and all the data tables for things we
> > install or create going forward.  I don't think we retrofit the DB to
> add them
> > to existing installations.
> >
> > This work was done in the 7.5 or so timeframe (before, at, or after I am
> not
> > sure, but in the range of the three releases just before, at, or after
> 7.5).
> >
> > No issue if you want to create something else as your primary key, but
> just be
> > aware of the fact that the environment does create a primary key for all
> tables
> > now so that it is present and defined for any environment where DB
> replication
> > requires this capability.
> >
> > So, you may want to check to see if there is already a primary key
> defined and
> > maintained for you.  Then, you can decide whether this is sufficient or
> do you
> > need to do something different for your situation.  Just be clear that
> you may
> > need to undo the primary key specification in your work as we should
> already be
> > doing one.  This was added in that range of just before, at, or just
> after the
> > 7.5 release.  If before or at, you have already seen/addressed this
> situation.
> > If after, just be aware that this is coming and may have some impact on
> you in
> > the future.
> >
> > Doug Mueller
> >
> > -----Original Message-----
> > From: Action Request System discussion list(ARSList) [mailto:
> [email protected]] On Behalf Of Axton
> > Sent: Monday, February 27, 2012 7:53 AM
> > To: [email protected]
> > Subject: Remedy Table Recreation
> >
> > First, some background information:
> > It used to be the case that certain operations would trigger Remedy to
> > recreate a database table:
> > - rename existing table
> > - create new table with the original name
> > - copy the data from the renamed table to the new table
> > - drop the renamed table
> >
> > I remember altering the precision on a decimal field would trigger
> > this, and I seem to also remember something with currency fields.
> >
> > Now for the issue:
> > We have applied changes to every table in the Remedy database to
> > define a primary key.  This primary key is used for Oracle Streams
> > replication to a target database.  If the table is recreated, the
> > primary key is dropped, which can cause Streams to choke if the table
> > contains a large volume of data.
> >
> > Now for the question:
> > Does anyone know of an action that a user can perform through the
> > Remedy clients that will cause a table to be recreated in this manner?
> >  When I say "Remedy Clients" I am referring to Dev Studio, User Tool,
> > ITSM applications, mid-tier, or the Remedy API.
> >
> > Relevant Environment Information:
> > - Oracle 11g
> > - ARServer 7.5
> > - Apps 7.5 (ITSM, CMDB, etc.)
> >
> > Thanks,
> > Axton Grams
> >
> >
> _______________________________________________________________________________
> > UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
> > attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
> >
> >
> _______________________________________________________________________________
> > UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
> > attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
>
>
> _______________________________________________________________________________
> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
> attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
>
>
> _______________________________________________________________________________
> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
> attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
>

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"

Reply via email to