Expand my Community achievements bar.

Error: The node is not synchronized. Make sure you've subscribed.

Avatar

Former Community Member

I keep getting this error on the UI side of things. Funny thing is first pass through the UI. There is not a problem logging in.

The failure is happening at this line cSession.archiveManager.isRecording = true;

My question is. What do I need to synchronize against.  I have not posted any code yet, because,, there is a large amount of code that I would

need to obtain permission from my client in order to publish it.

But. The scenario is, the client logs into the LCCS server when a notification alert occurrs. The session is recorded, then, the user logs ou.

When I initiate the scenario in close succession, the error happens. There is some state somewhere that is being held on to.

Loging Sequence:

--------------------------

                    initiatorAudioSub.subscribe();
                    initiatorAudioPub.publish();
                    cSession.archiveID = data.collabBundle.transactionID;

                    cSession.archiveManager.isRecording = true;

                   sharedProperty = new SharedProperty();
                    sharedProperty.isSessionDependent = true ;
                     sharedProperty.sharedID = data.collabBundle.room.id;
                     sharedProperty.connectSession = cSession ;
                     sharedProperty.subscribe();


                    webCamPub.publish();

Logout Sequence
--------------------------

                    initiatorAudioSub.close();

                     initiatorAudioPub.stop();
                 
         
                    webCamPub.stop();
                    cSession.archiveManager.isRecording = false;
               
                    cSession.logout();

6 Replies

Avatar

Former Community Member

HI Jeff,

Which collection node is firing the error? You should be able to drill down in the error stack in Flash Builder's debug panel to find out. I suspect you're calling isRecording before the ConnectSession is synchronized, which might cause this. Make sure to wait for ConnectSession's "synchronizationChange" event before starting recording.

  hope that helps

   nigel

Avatar

Former Community Member

Hi Nigel,

Here is the stack trace

Error: The node is not synchronized. Make sure you've subscribed.
    at com.adobe.rtc.sharedModel::CollectionNode/publishItem()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\sharedModel\CollectionNode.as:626]
    at com.adobe.rtc.sharedManagers::RoomManager/recordSession()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\sharedManagers\RoomManager.as:977]
    at com.adobe.rtc.archive::ArchiveManager/set isRecording()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\archive\ArchiveManager.as:253]

I tried what you suggested, waited for the synchronizeChangeEvent like so.

   
            private function synchronizationChangeHandler(event:SessionEvent):void {
               
                trace("Session synchronization changed");
                cSession.archiveManager.isRecording = true;
            }

However, I receive the same exception.

Thanks Again.

Avatar

Former Community Member

Hi there,

Close, but I still can't tell which node was trying to publish.. It seems

like it's the roomManager, which should be fully subscribed and synched by

the time the SynchronizationChange event happens. Are you sure the session

is actually in sync at the time? The event fires both when you sync up and

when you go out of sync (reconnect or disconnect). You can test this with

cSession.isSynchronized.

nigel

Avatar

Former Community Member

Nigel,

It appears that the SDK 2.0 stuff broke things.

This function made everything work as expected.

protected function onStreamRecieved(p_evt:StreamEvent):void {

                if (p_evt.streamDescriptor.type == StreamManager.CAMERA_STREAM) {

               

                    trace("received a camera stream from: " + p_evt.streamDescriptor.streamPublisherID);

                   

                  

                }

            }

Avatar

Former Community Member

I can't imagine that this had any impact on the error you were showing, or that the 2.0 SDK did anything related to either of these. Glad things are working for you though.

  nigel

Avatar

Former Community Member

You know this better than I do. But. I think, that if the stream can't be delivered to the client, it puts the session in an out of sync state with the server.

That's my take on it. But. Its pure speculation at this point. When I get the time, I'm going to explore this further. But. For now. It's working.

But. Thanks again.