KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > continuent > sequoia > controller > virtualdatabase > protocol > FailoverForPersistentConnection


1 /**
2  * Sequoia: Database clustering technology.
3  * Copyright (C) 2006 Continuent, Inc.
4  * Contact: sequoia@continuent.org
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  * Initial developer(s): Emmanuel Cecchet.
19  * Contributor(s): ______________________.
20  */

21
22 package org.continuent.sequoia.controller.virtualdatabase.protocol;
23
24 import java.io.Serializable JavaDoc;
25
26 import org.continuent.hedera.common.Member;
27 import org.continuent.sequoia.controller.requestmanager.distributed.DistributedRequestManager;
28 import org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualDatabase;
29
30 /**
31  * This class defines a FailoverForPersistentConnection to notify that a client
32  * has transparently failed over for the given persistent connection.
33  *
34  * @author <a HREF="mailto:emmanuel.cecchet@continuent.com">Emmanuel Cecchet</a>
35  * @version 1.0
36  */

37 public class FailoverForPersistentConnection
38     extends DistributedVirtualDatabaseMessage
39 {
40   private static final long serialVersionUID = 7480377277487864642L;
41   private long connectionId;
42
43   /**
44    * Creates a new <code>FailoverForPersistentConnection</code> object
45    *
46    * @param connectionId the persistent connection identifier
47    */

48   public FailoverForPersistentConnection(long connectionId)
49   {
50     this.connectionId = connectionId;
51   }
52
53   /**
54    * Returns the persistent connection id.
55    *
56    * @return Returns the connection id.
57    */

58   public long getConnectionId()
59   {
60     return connectionId;
61   }
62
63   /**
64    * @see org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedVirtualDatabaseMessage#handleMessageSingleThreaded(org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualDatabase,
65    * org.continuent.hedera.common.Member)
66    */

67   public Object JavaDoc handleMessageSingleThreaded(DistributedVirtualDatabase dvdb,
68       Member sender)
69   {
70     return null;
71   }
72
73   /**
74    * @see org.continuent.sequoia.controller.virtualdatabase.protocol.DistributedVirtualDatabaseMessage#handleMessageMultiThreaded(org.continuent.sequoia.controller.virtualdatabase.DistributedVirtualDatabase,
75    * org.continuent.hedera.common.Member, java.lang.Object)
76    */

77   public Serializable JavaDoc handleMessageMultiThreaded(
78       DistributedVirtualDatabase dvdb, Member sender,
79       Object JavaDoc handleMessageSingleThreadedResult)
80   {
81     long controllerId = connectionId
82         & DistributedRequestManager.CONTROLLER_ID_BIT_MASK;
83         
84     Long JavaDoc cid = new Long JavaDoc(connectionId);
85    
86     dvdb.notifyPersistentConnectionFailover(new Long JavaDoc(controllerId), cid);
87     return null;
88   }
89
90 }
91
Popular Tags