" /> Status for Andrew DeFaria: March 16, 2008 - March 22, 2008 Archives

« March 2, 2008 - March 8, 2008 | Main | March 23, 2008 - March 29, 2008 »

March 17, 2008

Sharable vs Non-sharable derived objects

  • Resolved Helpdesk ticket involving non-sharable derived objects

Sharable vs Non-sharable DOs

In Clearcase terms, DOs, or Derived Objects are objects created during a build. These are created when clearmake (or omake) is used. Clearmake will create a configuration record, AKA a bill of lading - basically a record of everything that went into making this derived object. Clearmake then adds a record to the vob saying that it made this DO and if any subsequent clearmake is attempting to make this same DO (given the same input or configuration record that is) then this DO is available for wink in. At this time the DO is copied to the vob and winked into the other view that was requesting this DO be build and the DOs reference count gets incremented. Or at least that's how DOs and winkins are supposed to work

Rational also introduced a concept of express building which essentially creates "non-sharable DOs". A sharable DO and a non-sharable DO are essentially the same except that the advertisement of the DO is not made in the VOB.

Here the error message stated:

'Unable to change meta type of "/vobs/rnc/rnsap/trace_support/decoder_tmp" to create derived object reference count - No such file or directory'.

Notice the "_tmp" portion. The DO was named decoder, not decoder_tmp. I first thought perhaps Clearcase is just having a problem creating decorder_tmp which it may have needed temporarily. I tried touching that file and it was OK. I then removed the decode_tmp file I touch and tried the checkin. It failed again.

The view was marked as nshareable_dos:

$ ct lsview -full -properties p57347_RANCQ00028109_devview | grep Properties
Properties: dynamic ucmview readwrite nshareable_dos

This is odd because the default, as shown by:

$ ct lssite -inquire | grep shareable
  view_shareable_dos=TRUE

is turned on for the site. I then thought that perhaps the problem is trying to check in a nonshareable DO is not allowed. Reading on the ct man winkin page is says:

winkin also converts nonshareable DOs to shareable (promoted) DOs. If you specify a nonshareable DO, winkin first advertises the DO by writing information about it to the VOB, and then promotes it by copying its data container into the VOB and moving its configuration record into the VOB. Because a shareable DO cannot have nonshareable sub-DOs or sibling DOs, winking in a nonshareable DO also advertises its sub-DOs and siblings, converting them to shareable DOs. With -siblings, winkin advertises and promotes the DO's siblings.

However even a ct winkin decoder gave the same error message. So then I again touched decoder_tmp and then ran the ct winkin and it worked! So I then checked in this derived object.

Note: You can change changed a view to sharable_dos with:

$ ct chview -sharable_dos p57347_RANCQ00028109_devview