It's all about the answers!

Ask a question

ClearCase RTC synchronization fails

Simon Eickel (1.1k65056) | asked Oct 12 '12, 6:49 a.m.
edited Oct 12 '12, 6:50 a.m.
Hi there,

I'm trying to get the synchronization between ClearCase and RTC running.
At the moment I got it synchronizing a ClearCase branch to an RTC synchronization stream. That was easy sinse it was a dedicated Project Area with no content.

Now I'm trying to synchronize from an existing ProjectArea where a lot of stuff is inside to a ClearCase VOB.
For this I created a branch inside the VOB called "rtc_cc_sync" and created the Synchronization Stream inside my ProjectArea connected to the branch/VOB.

Now I added an existing componant to this stream - which data should I synchronize when not existing one?
After choosing this root component within the "Select Files To Synchronize" dialog I started the synchronization.
But everytime I start it, it fails with this error message:

Problem running 'synchronizeStream':
Synchronization blocked by error:
javax.wvcm.WvcmException: CRRTC4060E: The synchronization process cannot be completed. The specified synchronized stream is currently in use by another stream. For synchronization, the stream must be reserved, but a stream that is in use cannot be reserved. For more information, open the information center, and search on CRRTC4060E.
Build failed. Exit value was 3.

When I search for locks on the stream, it's not locked. The branch is even not locked. How can I solve this conflict that I get my synchronization running? The stream should be nowhere in use because nobody else then me is working with it. And I have this stream only in the "synchronization" context in use ... Where can I find what is using this stream?


Simon Eickel commented Oct 12 '12, 6:52 a.m.

In the information center I only find this:
Information Center

But this does not help me...
"Make sure that another synchronized stream is not using the Rational ClearCase stream or the Rational ClearCase branch, and unlock the stream by using the Properties dialog box. Then, start the synchronization again."

How do I make this sure?

Geoffrey Clemm commented Oct 12 '12, 11:50 a.m. | edited Oct 12 '12, 11:51 a.m.

For folks interested in the implementation details, there are two kinds of "locks" or "reservations" for a synchronized stream.   The first is on the RTC side ... when a synchronization is started, it first "reserves" that sync stream.   If another sync request is made on that same sync stream before that sync completes, that second sync request fails with this error message.  But more commonly, if that first sync request is killed in some "abnormal" way, i.e. before it can release its lock, it will appear in subsequent sync requests that the sync request is still active.   This is the primary use case where the "unlock" button is used ... you know there are no active sync requests on the sync stream, so something prevented the previous sync request from releasing its lock.

There is another case, which is the one that Hajo was referring to.   In particular, you are allowed to have more than one synchronized stream associated with a given CC stream/branch.   Two different synchronized streams cannot be updating the same CC stream/branch at the same time, so a CC attribute is placed on the CC stream/branch while the synchronization request is active, indicating which sync stream is currently using that CC stream/branch.   In case the sync request is terminated before it can remove that attribute on the CC stream/branch, it will look like that CC stream/branch is still in use.   The "unlock" button will also remove that attribute.

So if the "unlock" button doesn't work, then there is something strange going on that Rational support or dev will probably need to investigate.

2 answers

permanent link
Dr. Hans-Joachim Pross (1.1k4058) | answered Oct 12 '12, 7:05 a.m.
I'm not sure, how to make that sure, but if you have a look at the synchronization branch type in ClearCase, you might find an attribute, which marks that branch to be in use by a synchronization. Note name an value (because I don't remember the name of that attribute); remove that attribute and retry the synchronization.

There is also a 'legal' way to remove that lock inside of RTC. But I haven’t a system running to find out where...

Simon Eickel commented Oct 12 '12, 7:11 a.m.

This VOB has no attributes set, so I cannot remove any attribute:

rbroot@ccmu01# ct describe -l vob:/vobs/eickel_move
versioned object base "/vobs/eickel_move"
  created 2009-10-14T07:29:11+02:00 by 00001671 Helmerichs R. (ccadm02.ccgrp02@ccserv02)
  "Created by Wed Oct 14 07:29:10 2009"
  master replica: muc@/vobs/eickel_move
  replica name: muc
  VOB family feature level: 5
  VOB storage host:pathname "ccmu03:/ccase/ccmu03/vobstore01/ccr_002/eickel_move.vbs"
  VOB storage global pathname (...)
  database schema version: 54
  modification by remote privileged user: allowed
  atomic checkin: enabled
  VOB ownership:
    FeatureLevel = 5
    RelocationVOB@171@/vobs/eickel_move -> vob:/vobs/eickel_test

I found in RTC the option to unlock the Stream when rightclicking on the Synchronizaation Stream and choosing properties. But this doesn't work either.

Dr. Hans-Joachim Pross commented Oct 12 '12, 7:19 a.m.

Attribute on the branch type. Pls. check, but I assume, that there is no, because the unlock does the same, as I assume.

Simon Eickel commented Oct 12 '12, 9:49 a.m.

rbroot@ccmu01# ct lstype -l brtype:rtc_cc_sync
branch type "rtc_cc_sync"
 2012-10-12T09:58:53+02:00 by Eickel (eickel_s.Domain Users@MU707070)
  "branch for synchronizing RTC2CC"
  master replica: muc@/vobs/eickel_move
  request for mastership: allowed for branch type
  request for mastership: allowed for all instances
  owner: eickel_s
  group: ccgrp02
  scope: this VOB (ordinary type)
  constraint: one version per element

As you expected no attributes set on the branch type.

permanent link
Geoffrey Clemm (28.9k23035) | answered Oct 12 '12, 10:43 a.m.
When the info center said "using the Properties dialog box", it is referring to the Properties dialog box you get from the "ClearCase Synchronized Streams" view.   In particular, in that view, right click over the synchronized stream, and select "Properties".   On the ClearCase Provider Properties page, you will see a button labelled "Unlock".  Click that button.

In general, if you don't understand the guidance you get from the information center, it is best to go to the on-line documentation for the version of RTC you are using, e.g. for 4.0:  (or you can just use the dynamic help that is installed with your RTC Eclipse plug-in ... just select "Help->Dynamic_Help").

Then type in the string you don't understand in the Search box.   For example if you type in "unlock the stream" into the Search box, the first hit is the "Unlocking a Synchronized Stream" topic (which provides you with more detailed instructions).

Or just post to this forum, as you have done (:-).

Simon Eickel commented Oct 12 '12, 11:13 a.m.

Hi Geoffry,

nice that you are so confident of your answer but as I wrote in my comment of the answer from Hajo Pross I found this button myself. Bur unfortunately pressing it helps nothing.

So - I'm sorry to to tell you but your answer does not solve my problem.

Geoffrey Clemm commented Oct 12 '12, 11:34 a.m.

If the "unlock" button doesn't unlock the stream, then you will probably need to contact Rational Support or submit a work item on  Do not try to use ClearCase commands to modify metadata being maintained by the Synchronizer, unless explicitly instructed to do so by Rational Development or Support.

Simon Eickel commented Oct 12 '12, 11:47 a.m.

ok - thanks for this, I'll see what's helping

Your answer

Register or to post your answer.