© ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 –...

56
ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    226
  • download

    2

Transcript of © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 –...

Page 1: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Ltd

. -

1 -

NM DMS Incremental Update

Training

ABB

Annual Users’ Group Meeting

August 27 – 31, 2006

Page 2: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

2 -

IU Basics

Update the as-operated model with the as-built model

Designed to preserve database integrity for any type of failure

As-Operated changes(temporary states) are never lost

Production as-operated

model

GIS extract

as-built model

Page 3: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

3 -

IU Basics

Compare

Update

Rollback

Complete

Page 4: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

4 -

IU Basics - Compare

Four methods are available

Full - Comparison uses a full GIS extract

Sub_id – Comparison uses a subset of the full GIS extract Most common

Transactions (add/delete) – relies on GIS to provide all add/delete transactions

Transactions (add/delete/update) – relies on GIS to provide all add/delete/update transactions Simplest, in terms of processing, but only those customers using

ABB Data Maintenance tool can use this method

Page 5: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

5 -

IU Basics - Compare

All IU processing, but especially the Compare stage, is dependent on the ABB_INT_ID columns

These values are the link between the GIS system and the NM-DMS database

Values should never be reused Actually, they can, but must be careful

Values must be unique within a table, but can be duplicated in different tables

ie. Device.abb_int_id values must all be unique, but they can overlap values in the line table.

Page 6: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

6 -

IU Basics – ABB_INT_IDs

Typical detection of an Add transaction Abb_int_id value 10 exists in the GIS extract, but not in the

master

Therefore, it needs to be added to the master

Special care is needed when writing the GIS extraction tool

Often, there is not an exact one to one match between GIS and NM-DMS objects

ABB_INT_IDs must be generated consistently between extracts

Page 7: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

7 -

IU Basics – ABB_INT_IDs

Typical detection of an Add transaction Abb_int_id value 10 exists in the GIS extract, but not in the

master

Therefore, it needs to be added to the master

Special care is needed when writing the GIS extraction tool

Often, there is not an exact one to one match between GIS and NM-DMS objects

ABB_INT_IDs must be generated consistently between extracts

Page 8: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

8 -

1

2

34 5

GIS

1

2

34 5

node

nodeNode/line

NM-DMS

IU Basics – ABB_INT_IDs

Page 9: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

9 -

IU Compare - Full

1 2 3 4 1 3 4

5 6 7

Master CSF

Page 10: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

10 -

IU Compare – SUB ID

1 2 3 4

5 6 7 8

Master CSF

8 91 3 4 10

Page 11: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

11 -

IU Compare – SUB ID

1 2 3 4

5 6 7 8

Master CSF

8 91 3 4 10

8 12

Page 12: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

12 -

IU Compare – SUB ID

Only compare against what is in the CSF

If you delete an entire SUB_ID value, the extractor must create an entry in the AFFECTED_SUBID table Rare!

Boundary objects – Tie points, may be extracted for feeder 1 or feeder 2

Objects can move between sub_id sets, via updates Again, MUST be extracted consistently

Page 13: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

13 -

IU Compare – Add/Delete transactions

Add/Delete transactions are explicitly specified in the CSF.csf_trans table

No detection of add/deletes is done by the compare process

Updates are still detected Including link changes

Including path points

Page 14: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

14 -

IU Compare – Add/Delete/Update transactions

Add/Delete/Update transactions are explicitly specified in the CSF.csf_trans table

No detection of add/deletes/updates is done by the compare process

Updates are still detected Including link changes

Page 15: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

15 -

IU Compare – Path Points

Path Points require special IU rules, as individual path points do not have abb_int_id values.

Brute force comparison during line update detection

For each line Each set of path points, both geographic and schematic are

compared

Any difference in X,Y coordinates, or in number of path points, trigger an update

The update is the complete replacement of the list of path points

Page 16: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

16 -

IU Compare – Transactions Types

Four transaction types

Add

Delete

Update

Temporary ID Change

Link Change – now modeled as a delete/add pair of transactions

Page 17: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

17 -

IU Compare – Link Changes

Link changes are changes in internal object dependencies

Ex. Device -> Line

Line -> Node 1

Line -> Node 2

Load -> Node

Source -> Node

Capacitor -> Node

Mpoint -> Node

Site -> Node

Page 18: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

18 -

IU Compare – Link Changes

Special case for lines

If a line has a node link change(either node 1 or 2)

A delete/add pair is created for the line

A delete/add pair is also created for each device on the line

Page 19: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

19 -

IU Compare – Circular ID changes

Object character IDs must remain unique

Problems occur when IDs are swapped Device ID #1 is changed to Device ID #2

Device ID #2 is changed to Device ID #1

Cannot be performed directly, as it will violate unique restriction

This “Circular” dependency is detected, and a temporary ID transaction is injected Device ID #1 is changed to dummy value

Device ID #2 is changed to Device ID #1

Device ID #1 is changed to Device ID #2

No unique ID violation

Page 20: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

20 -

IU Compare – Updates

Objects are matched using their abb_int_id values

Columns are compared, based on csf_column_comp table

Page 21: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

21 -

IU Compare – Security Checks

Delete object with Tag

Delete node with lines/jumpers attached

Delete node with temporary generator

Delete line with line cut attached

Delete node/line with phase jumper attached

Delete device, load, source that is part of current outage

Unique ID reference No options available to prevent unique ID violation

Page 22: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

22 -

IU Update - Basics

Updates are done atomically – so that model is not corrupted in the event of database or hardware failure

Updates also save all necessary data for the rollback stage

Page 23: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

23 -

IU Update – Order of updates

Check SHM for available space Ways to increase space

ADM_DATABASE.SHMBUF

Manipulate XXX_FREE tables

Deletions

Additions

Updates

Page 24: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

24 -

IU Update – Order of deletions

Node objects

Line device

Line

Node

Memo

Feeder

Substation

ATO

Node objects Load

Capacitor

Site

Source

Mpoint

Page 25: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

25 -

IU Update – Order of additions

Node

Line

ATO

Line device

Node objects

Memo

Feeder

Substation

Node objects Load

Capacitor

Site

Source

Mpoint

Page 26: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

26 -

IU Update – Order of updates

Line device

Path Point

Line

Node objects

Node

Memo

Feeder

Substation

ATO

Node objects Load

Capacitor

Site

Source

Mpoint

Page 27: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

27 -

Typical Delete transaction processing

Create csf_reversal record

Create CHG_XXXXX record

Delete from base table

Delete from memory

Send message

Page 28: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

28 -

Typical Add transaction processing

Create csf_reversal record

Insert into base table, after getting next free fpos

Lookup any reference fpos values (link ids)

Insert into memory

Update csf_reversal record with new fpos

Send message

NO CHG_xxx table entry for additions

Page 29: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

29 -

Add transaction processing, for a link change

Steps are as for a regular add

Additional step to lookup the saved status value in the CHG_XXX table Stored there during the delete

Page 30: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

30 -

Looking up link ids

FPOS values vary between CSF and master

Example – Adding line with abb_int_id 50

It has no_key_1, no_key_2 references of 15,20 in CSF

These are the FPOS values, not abb_int_id values

Must query CSF to determine abb_int_id value of node where fpos = 15, 20

Then, when inserting into master db, must use these node abb_int_id values to lookup the correct fpos value

Page 31: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

31 -

Looking up link ids

CSF

Line – fpos 30

abb_int_id 50

no_key_1 10

no_key_2 15

Node – fpos 10

abb_int_id 100

Node – fpos 15

abb_int_id 101

Line – fpos 99

abb_int_id 50

no_key_1 1200

no_key_2 1501

Node – fpos 1200

abb_int_id 100

Node – fpos 1501

abb_int_id 101

Master

Page 32: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

32 -

Looking up link ids

The FPOS to abb_int_id translation is also performed when creating the CHG_XXX table entries

The CHG_XXX tables are exact copies of their matching object tables, with some additional columns

These columns support the fpos-abb_int_id lookup values, and sequencing of updates

Common cause of failure during the update process

Page 33: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

33 -

Typical Update transaction processing

Create csf_reversal record

Create chg_XXX record

Lookup up record from CSF

Update fields in master db

Update in memory

Send message

Path points are slightly different. All path points for a line (geo/schem) are replaced, even if only one

has changed

Page 34: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

34 -

Updates – temporary states

Temporary (as-operated) status is not modified

EXCEPT FOR

When built phases change, closed phases are adjusted accordingly

Ex.

Device is built ABC, closed ABC

Built phases are changed to BC

Closed phases are modified to BC

Page 35: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

35 -

Rollback

Simply reverses all applied transactions

Update processing, in reverse

Based on csf_reversal table

Page 36: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

36 -

Rollback – Order of transactions

Insertions

Deletions

Updates

Page 37: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

37 -

Rollback – Reversing insertions, order

Line device

Line

Node objects

Node

ATO

Memo

Feeder

Substation

Node objects Load

Capacitor

Site

Source

Mpoint

Page 38: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

38 -

Rollback – Reversing deletions, order

Node

Node objects

Line

ATO

Line device

Memo

Feeder

Substation

Node objects Load

Capacitor

Site

Source

Mpoint

Page 39: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

39 -

Rollback – Reversing updates, order

Node objects Load

Capacitor

Site

Source

Mpoint

Line device

PathPoints

Line

Node objects

Node

ATO

Memo

Feeder

Substation

Page 40: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

40 -

Complete

Cleanup all records needed for rollback Csf_reversal

Chg_xxxx

Modifies CSF status in ADM_DATABASE table

Page 41: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

41 -

ADM_DATABASE Status values

1 – Indicates a master database

2 – A valid case study, ready for compare

3 – Casestudy, but corrupted – failed on creation

4 – Update attempt failed

5 – Rollback failed

6 – Successful completed

7 – Casestudy, but not valid for the IU process

8 – Update successful

Page 42: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

42 -

External script hooks

Each script takes arguments of Astatus id, astatus password, astatus dbname(TNS connect)

Scripts are references using the environment variables below

PRE_DIFF_CHECK_SCRIPT Called before performing the Compare

POST_DIFF_CHECK_SCRIPT Called after the Compare completes

POST_INCR_SCRIPT_NON_COMPLETE Called after Update is complete

POST_ROLLBACK_SCRIPT Called after Rollback is complete

POST_INCR_SCRIPT

Called after Complete is complete

Page 43: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

43 -

External script hooks

Why use these?

Auto restart outageEngine after update or rollback

Auto run nodeLoc program, to keep node_location table correctly populated

Update customer counts on loads

Any other processing you need

Page 44: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

44 -

Some options

PathPoints in memory

If enough memory is available, read all the CSF path points into memory at once, instead of line by line during the compare

Cut roughly 25% off Chicago compare times

Lookup Link IDs As discussed before, many database queries are needed

to lookup abb_int_id link values from the CSF during the update

If the abb_int_id values(In the CSF only) are used in place of the minimized FPOS values, these lookup steps can simply be skipped.

Still able to load the CSF for viewing using the GUI

Not able to run opmanager, outageEngine, server apps

Page 45: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

45 -

Some options

FeederSub compare and update

If set, include feeder and substation tables in the IU process

Can use sub_id or full method

The ID column is both tables is treated as the abb_int_id value

Page 46: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

46 -

IU Troubleshooting

The previous slides contain everything you need to know to immediately troubleshoot any IU problems

HEHEHE

IU is one of the most complicated processes we have

Page 47: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

47 -

IU Troubleshooting

So it failed, now what do you do?

First, check the error log, usually located in the /tmp directory Btw, this location can be changed by using the TMPDIR

env variable

Also, check the output of the incrUpd process itself

Page 48: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

48 -

IU Troubleshooting – Common errors

Corrupt data in the master database

Fails when trying to create chg_xxx records

Ex.

Device -> li_key is 0, or points to a non-existent line

When trying to lookup the abb_int_id value to save in the chg_xxx table, failure

Page 49: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

49 -

IU Troubleshooting – Common errors

Solution

Simply delete the offending object

Because the link data is bad, its not loaded into the GUI, or the server SHM

Once deleted, its detected as an ADD transaction

Detection of these problems can be done before hand using the pre diff check script

Page 50: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

50 -

IU Troubleshooting – Common errors

Tag added after compare stage

Jumper, generator added after compare stage

Unique ID violations, temporary objects

Page 51: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

51 -

IU Troubleshooting – Steps

If the update fails, you must either complete, keeping what you have successfully updated

Or rollback, which is recommended

You cannot try to resume the update where it left off

Fix the problem, recompare and retry update

Page 52: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

52 -

IU Troubleshooting – Steps

If the rollback fails, you can correct the problem, then simply re-rollback

Typical cause of rollback failure

Object is being added Csf_reversal record created

Some next step fails – unique id, db error

Csf_reversal record remains

When reversing, this addition must deleted, but since it doesn’t exist, the rollback fails with an error

Simply delete the csf_reversal record and re-rollback

Page 53: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

53 -

IU Troubleshooting – Strange behavior

Compare, Update, then Re-compare

Additional updates are found

Typically because of how null values are treated during the update.

Numeric columns typically receive a value of 0

Character columns typically receive a value of ‘ ‘ That’s a space

During the re-compare, they show up as updates

Page 54: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

54 -

IU Troubleshooting – Strange behavior

Link changes – delete/add pairs

Operators may try to operate the devices after they have been deleted, but before they are re-added

Results in a server error

Usually, there’s no contention when trying to operate an object flagged for deletion, but the new processing for link changes introduces the possibility

Page 55: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.

© A

BB

Inc

. -

55 -

IU interaction with the GUI

As all the changes are occurring on the server, the GUI receives each message and holds onto it Indicator at bottom of GUI console shows message count

After IU is complete(a complete message is sent), the GUI will process all the messages

Can take a while

GUI user pref to control processing, or ask the operator to logout/in

Page 56: © ABB Ltd. - 1 - NM DMS Incremental Update Training ABB Annual Users’ Group Meeting August 27 – 31, 2006.