JBoss Cache SVN: r7022 - core/trunk/src/test/java/org/jboss/cache/passivation.
by jbosscache-commits@lists.jboss.org
Author: manik.surtani(a)jboss.com
Date: 2008-10-28 15:35:49 -0400 (Tue, 28 Oct 2008)
New Revision: 7022
Modified:
core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java
Log:
Added partial state tests
Modified: core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java 2008-10-28 19:22:41 UTC (rev 7021)
+++ core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java 2008-10-28 19:35:49 UTC (rev 7022)
@@ -22,7 +22,10 @@
package org.jboss.cache.passivation;
import org.jboss.cache.Cache;
+import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
+import org.jboss.cache.Node;
+import org.jboss.cache.Region;
import org.jboss.cache.UnitTestCacheFactory;
import org.jboss.cache.config.CacheLoaderConfig;
import org.jboss.cache.config.Configuration;
@@ -49,6 +52,57 @@
doTest(NodeLockingScheme.PESSIMISTIC);
}
+ public void testStateTransferOfPassivatedPartialState() throws Exception
+ {
+ doPartialStateTransferTest(NodeLockingScheme.MVCC);
+ }
+
+ public void testStateTransferOfPassivatedPartialStatePessimistic() throws Exception
+ {
+ doPartialStateTransferTest(NodeLockingScheme.PESSIMISTIC);
+ }
+
+
+ private void doPartialStateTransferTest(NodeLockingScheme nls) throws Exception
+ {
+ CacheSPI cache1=null, cache2=null;
+ String subtree = "/SESSIONS";
+ try
+ {
+ Set<Object> nameSet = new HashSet<Object>();
+ nameSet.add("a");
+ nameSet.add("b");
+ nameSet.add("c");
+
+ cache1 = (CacheSPI) new UnitTestCacheFactory().createCache(buildConf(nls, "cache1", true));
+ cache2 = (CacheSPI) new UnitTestCacheFactory().createCache(buildConf(nls, "cache2", true));
+
+ Region r1 = cache1.getRegionManager().getRegion(subtree, true);
+ Region r2 = cache2.getRegionManager().getRegion(subtree, true);
+ r1.registerContextClassLoader(getClass().getClassLoader());
+ r2.registerContextClassLoader(getClass().getClassLoader());
+
+ r1.activate();
+
+ cache1.put(subtree + "/a", "k", "v");
+ cache1.put(subtree + "/b", "k", "v");
+ cache1.put(subtree + "/c", "k", "v");
+
+ Node root1 = cache1.getNode(subtree);
+ assert root1.getChildrenNames().equals(nameSet) : "Expecting " + nameSet + " but got " + root1.getChildrenNames();
+
+ cache1.evict(Fqn.fromString("/a"));
+
+ r2.activate();
+ Node root2 = cache1.getNode(subtree);
+ assert root2.getChildrenNames().equals(nameSet) : "Expecting " + nameSet + " but got " + root2.getChildrenNames();
+ }
+ finally
+ {
+ TestingUtil.killCaches(cache1, cache2);
+ }
+ }
+
private void doTest(NodeLockingScheme nls) throws Exception
{
Cache cache1=null, cache2=null;
@@ -59,7 +113,7 @@
nameSet.add("b");
nameSet.add("c");
- cache1 = new UnitTestCacheFactory().createCache(buildConf(nls, "cache1"));
+ cache1 = new UnitTestCacheFactory().createCache(buildConf(nls, "cache1", false));
cache1.put("/a", "k", "v");
cache1.put("/b", "k", "v");
@@ -68,7 +122,7 @@
cache1.evict(Fqn.fromString("/a"));
- cache2 = new UnitTestCacheFactory().createCache(buildConf(nls, "cache2"));
+ cache2 = new UnitTestCacheFactory().createCache(buildConf(nls, "cache2", false));
assert cache2.getRoot().getChildrenNames().equals(nameSet) : "Expecting " + nameSet + " but got " + cache2.getRoot().getChildrenNames();
}
finally
@@ -77,9 +131,14 @@
}
}
- private Configuration buildConf(NodeLockingScheme nls, String n) throws Exception
+ private Configuration buildConf(NodeLockingScheme nls, String n, boolean regionbased) throws Exception
{
Configuration c = new Configuration();
+ if (regionbased)
+ {
+ c.setUseRegionBasedMarshalling(true);
+ c.setInactiveOnStartup(true);
+ }
c.setCacheMode(CacheMode.REPL_SYNC);
c.setNodeLockingScheme(nls);
CacheLoaderConfig clc = getSingleCacheLoaderConfig("", DummySharedInMemoryCacheLoader.class.getName(), "bin="+n, false, true, false);
16 years, 2 months
JBoss Cache SVN: r7021 - in core/trunk/src: test/java/org/jboss/cache/passivation and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: manik.surtani(a)jboss.com
Date: 2008-10-28 15:22:41 -0400 (Tue, 28 Oct 2008)
New Revision: 7021
Added:
core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java
Modified:
core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferIntegrator.java
core/trunk/src/main/java/org/jboss/cache/statetransfer/LegacyStateTransferIntegrator.java
Log:
Fixed state transfer and passivation bug
Modified: core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferIntegrator.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferIntegrator.java 2008-10-28 04:39:48 UTC (rev 7020)
+++ core/trunk/src/main/java/org/jboss/cache/statetransfer/DefaultStateTransferIntegrator.java 2008-10-28 19:22:41 UTC (rev 7021)
@@ -221,6 +221,10 @@
targetNode.removeChild(childname);
}
+ // set these flags to false if we have persistent state!
+ targetNode.setDataLoaded(false);
+ targetNode.setChildrenLoaded(false);
+
List<NodeData> list = readNodesAsList(in);
if (list != null)
{
@@ -303,6 +307,8 @@
cache.clearData(fqn);
prepareContextOptions();
cache.put(fqn, attrs);
+ cache.getNode(fqn).setDataLoaded(false);
+ cache.getNode(fqn).setChildrenLoaded(false);
// Recursively call, which will walk down the tree
// and return the next NodeData that's a child of our parent
Modified: core/trunk/src/main/java/org/jboss/cache/statetransfer/LegacyStateTransferIntegrator.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/statetransfer/LegacyStateTransferIntegrator.java 2008-10-28 04:39:48 UTC (rev 7020)
+++ core/trunk/src/main/java/org/jboss/cache/statetransfer/LegacyStateTransferIntegrator.java 2008-10-28 19:22:41 UTC (rev 7021)
@@ -258,6 +258,11 @@
}
}
+ // set these flags to false if we have persistent state!
+ target.setDataLoaded(false);
+ target.setChildrenLoaded(false);
+
+
// read marker off stack
if (trace) log.trace("Reading marker from stream");
cache.getMarshaller().objectFromObjectStream(in);
Added: core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java (rev 0)
+++ core/trunk/src/test/java/org/jboss/cache/passivation/ReplAndStateTransferWithPassivationTest.java 2008-10-28 19:22:41 UTC (rev 7021)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.cache.passivation;
+
+import org.jboss.cache.Cache;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.UnitTestCacheFactory;
+import org.jboss.cache.config.CacheLoaderConfig;
+import org.jboss.cache.config.Configuration;
+import org.jboss.cache.config.Configuration.CacheMode;
+import org.jboss.cache.config.Configuration.NodeLockingScheme;
+import org.jboss.cache.loader.AbstractCacheLoaderTestBase;
+import org.jboss.cache.loader.DummySharedInMemoryCacheLoader;
+import org.jboss.cache.util.TestingUtil;
+import org.testng.annotations.Test;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@Test(groups = "functional")
+public class ReplAndStateTransferWithPassivationTest extends AbstractCacheLoaderTestBase
+{
+ public void testStateTransferOfPassivatedState() throws Exception
+ {
+ doTest(NodeLockingScheme.MVCC);
+ }
+
+ public void testStateTransferOfPassivatedStatePessimistic() throws Exception
+ {
+ doTest(NodeLockingScheme.PESSIMISTIC);
+ }
+
+ private void doTest(NodeLockingScheme nls) throws Exception
+ {
+ Cache cache1=null, cache2=null;
+ try
+ {
+ Set<Object> nameSet = new HashSet<Object>();
+ nameSet.add("a");
+ nameSet.add("b");
+ nameSet.add("c");
+
+ cache1 = new UnitTestCacheFactory().createCache(buildConf(nls, "cache1"));
+
+ cache1.put("/a", "k", "v");
+ cache1.put("/b", "k", "v");
+ cache1.put("/c", "k", "v");
+ assert cache1.getRoot().getChildrenNames().equals(nameSet);
+
+ cache1.evict(Fqn.fromString("/a"));
+
+ cache2 = new UnitTestCacheFactory().createCache(buildConf(nls, "cache2"));
+ assert cache2.getRoot().getChildrenNames().equals(nameSet) : "Expecting " + nameSet + " but got " + cache2.getRoot().getChildrenNames();
+ }
+ finally
+ {
+ TestingUtil.killCaches(cache1, cache2);
+ }
+ }
+
+ private Configuration buildConf(NodeLockingScheme nls, String n) throws Exception
+ {
+ Configuration c = new Configuration();
+ c.setCacheMode(CacheMode.REPL_SYNC);
+ c.setNodeLockingScheme(nls);
+ CacheLoaderConfig clc = getSingleCacheLoaderConfig("", DummySharedInMemoryCacheLoader.class.getName(), "bin="+n, false, true, false);
+ clc.setPassivation(true);
+ c.setCacheLoaderConfig(clc);
+ return c;
+ }
+
+}
16 years, 2 months
JBoss Cache SVN: r7020 - enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES.
by jbosscache-commits@lists.jboss.org
Author: mospina
Date: 2008-10-28 00:39:48 -0400 (Tue, 28 Oct 2008)
New Revision: 7020
Modified:
enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/State_transfer.po
enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Treecache_marshaller.po
Log:
translation in progress
Modified: enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/State_transfer.po
===================================================================
--- enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/State_transfer.po 2008-10-27 22:25:21 UTC (rev 7019)
+++ enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/State_transfer.po 2008-10-28 04:39:48 UTC (rev 7020)
@@ -8,7 +8,7 @@
"Project-Id-Version: State_transfer\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-09-21 04:44+0000\n"
-"PO-Revision-Date: 2008-10-17 12:14+1000\n"
+"PO-Revision-Date: 2008-10-28 14:33+1000\n"
"Last-Translator: Angela Garcia\n"
"Language-Team: <en(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: State_transfer.xml:5
#, no-c-format
msgid "State Transfer"
-msgstr ""
+msgstr "Transferencia de estado"
#. Tag: para
#: State_transfer.xml:6
@@ -29,19 +29,19 @@
"\"State Transfer\" refers to the process by which a JBoss Cache instance "
"prepares itself to begin providing a service by acquiring the current state "
"from another cache instance and integrating that state into its own state."
-msgstr ""
+msgstr "La \"transferencia de estado\" se refiere al proceso por el cual una instancia de JBoss Cache se prepara para empezar a proporcionar un servicio adquiriendo el estado actual de otra instancia caché e integrando ese estado en su propio estado."
#. Tag: title
#: State_transfer.xml:10
#, no-c-format
msgid "Types of State Transfer"
-msgstr ""
+msgstr "Tipos de transferencia de estado"
#. Tag: para
#: State_transfer.xml:11
#, no-c-format
msgid "The state that is acquired and integrated can consist of two basic types:"
-msgstr ""
+msgstr "El estado que se adquiere y se integra puede consistir de dos tipos básicos: "
#. Tag: para
#: State_transfer.xml:16
@@ -52,7 +52,7 @@
"nodes in the cache that is providing state are serialized and transferred; "
"the recipient deserializes the data, creates corresponding nodes in its own "
"in-memory tree, and populates them with the transferred data."
-msgstr ""
+msgstr "Estado \"transitorio\" o \"en-memoria\". Esto consiste del estado real en la memoria de otra instancia caché -- el contenido de los nodos en memoria en el caché que está proporcionando el estado es serializado y transferido; el recipiente deserializa los datos, crea los nodos correspondientes en su propio árbol en memoria y los popula con los datos transferidos."
#. Tag: para
#: State_transfer.xml:19
@@ -60,7 +60,7 @@
msgid ""
"\"In-memory\" state transfer is enabled by setting the cache's "
"<literal>FetchInMemoryState</literal> property to <literal>true</literal>."
-msgstr ""
+msgstr "La transferencia del estado \"en-memoria\" se habilita configurando la propiedad <literal>FetchInMemoryState</literal> del caché como <literal>true</literal>."
#. Tag: para
#: State_transfer.xml:24
@@ -70,7 +70,7 @@
"The state stored in the state-provider cache's persistent store is "
"deserialized and transferred; the recipient passes the data to its own cache "
"loader, which persists it to the recipient's persistent store."
-msgstr ""
+msgstr "Estado \"persistente\". Sólo es aplicable si se utiliza un cargador de caché no compartido. El estado almacenado en el almacenamiento persistente del caché proveedor del estado es deserializado y transferido; el recipiente pasa los datos a su propio cargador de caché, el cual lo persiste en el almacenamiento persistente del recipiente. "
#. Tag: para
#: State_transfer.xml:27
@@ -82,6 +82,8 @@
"chain, only one can have this property set to true; otherwise you will get "
"an exception at startup."
msgstr ""
+"La transferencia del estado \"persistente\" se habilita configurando la propiedad "
+"<literal>CacheLoaderFetchPersistentState</literal> del cargador de caché como <literal>true</literal>. Si se configuran múltiples cargadores de caché en una cadena, sólo uno puede tener configurada esta propiedad como verdadera; de otra manera se presentará una excepción en el arranque."
#. Tag: para
#: State_transfer.xml:30
@@ -94,6 +96,8 @@
"<literal>CacheLoaderFetchPersistentState</literal> set to <literal>true</"
"literal>."
msgstr ""
+"La transferencia de estado persistente con un cargador de caché compartido no tiene sentido ya que el mismo almacenamiento persistente que proporciona los datos terminará recibiéndolo. Por lo tanto si se utiliza un cargador de caché compartido, el caché no permitirá una transferencia de estado persistente incluso si un cargador de caché tiene <literal>CacheLoaderFetchPersistentState</literal> configurado como <literal>true</"
+"literal>."
#. Tag: para
#: State_transfer.xml:35
@@ -101,7 +105,7 @@
msgid ""
"Which of these types of state transfer is appropriate depends on the usage "
"of the cache."
-msgstr ""
+msgstr "El tipo apropiado de transferencia de estado depende del uso del caché."
#. Tag: para
#: State_transfer.xml:40
@@ -119,7 +123,7 @@
"transfer. This approach somewhat reduces the burden on the cache instance "
"providing state, but increases the load on the persistent store on the "
"recipient side.)"
-msgstr ""
+msgstr "Si se utiliza un cargador de caché por medio de escrituras, el estado actual del caché es completamente representado por el estado persistente. Puede que los datos hayan sido eliminados del estado en memoria pero todavía se encontrarán en el almacenamiento persistente. En este caso, si el cargador de caché no es compartido, la transferencia de estado persistente se utiliza para asegurarse de que el nuevo caché tiene el estado correcto. El estado en la memoria también se puede transferir si desea tener un caché \"caliente\" -- el cual tiene todos los datos relevantes en memoria cuando el caché empieza a proporcionar el servicio, (observe que el parámetro de configuración \"CacheLoaderPreload\" también se puede utilizar para proporcionar un caché \"tibio\" o \"caliente\"sin requerir una transferencia de estado en memoria. Este enfoque de cierta manera reduce el peso sobre la instancia del caché que proporciona el estado, pero incrementa la carga en el al!
macenamiento de persistencia en el lado del recipiente). "
#. Tag: para
#: State_transfer.xml:45
@@ -130,7 +134,7 @@
"and persistent (i.e. passivated) states. Therefore an in-memory state "
"transfer is necesssary. A persistent state transfer is necessary if the "
"cache loader is not shared."
-msgstr ""
+msgstr "Si un cargador de caché se utiliza con pasivación, la representación completa del estado sólo se puede obtener combinando los estados en la memoria (por ejemplo no pasivado) y el persistente (por ejemplo, el pasivado). Por lo tanto es necesario una transferencia del estado en memoria. Es necesario una transferencia de estado persistente si el cargador de caché no es compartido. "
#. Tag: para
#: State_transfer.xml:50
@@ -140,13 +144,13 @@
"one that is used to cache data that can also be found in a persistent store, "
"e.g. a database), whether or not in-memory state should be transferred "
"depends on whether or not a \"hot\" cache is desired."
-msgstr ""
+msgstr "Si no se utiliza un cargador de caché y el caché sólo es un caché de escritura (por ejemplo, uno que se utiliza para poner datos en caché que también se pueden encontrar en un almacenamiento persistente, por ejemplo, una base de datos), si el estado en memoria o no se debe transferir depende de si se desea tener un caché \"caliente\" o no."
#. Tag: title
#: State_transfer.xml:58
#, no-c-format
msgid "When State Transfer Occurs"
-msgstr ""
+msgstr "Cuando la transferencia de estado tiene lugar"
#. Tag: para
#: State_transfer.xml:59
@@ -158,7 +162,7 @@
"related to the entire tree -- i.e. the root node and all nodes below it. A "
"\"partial\" state transfer is one where just a portion of the tree is "
"transferred -- i.e. a node at a given Fqn and all nodes below it."
-msgstr ""
+msgstr "Si la transferencia de estado persistente o en memoria se encuentra habilitada entonces se realizará una transferencia de estado parcial o completa varias veces, dependiendo de la manera en que se utilice el caché. La transferencia \"completa\" de estado se refiere a la transferencia del estado relacionado con el árbol completo -- por ejemplo, el nodo raíz y todos los nodos por debajo de este. Una transferencia \"parcial\" de estado es en donde sólo se transfiere una parte del árbol -- por ejemplo, un nodo en un Fqn dado y todos los nodos por debajo de este. "
#. Tag: para
#: State_transfer.xml:62
@@ -166,7 +170,7 @@
msgid ""
"If either in-memory or persistent state transfer is enabled, state transfer "
"will occur at the following times:"
-msgstr ""
+msgstr "Si se habilita ya sea la transferencia de estado persistente o en memoria, esta transferencia tendrá lugar así:"
#. Tag: para
#: State_transfer.xml:67
@@ -177,13 +181,13 @@
"state transfer. The state is retrieved from the cache instance that has been "
"operational the longest. If there is any problem receiving or integrating "
"the state, the cache will not start."
-msgstr ""
+msgstr "Transferencia de estado inicial. Tiene lugar cuando primero se inicia el caché (como parte del procesamiento del método <literal>start()</literal>). Esta es una transferencia de estado completa. El estado se recupera de la instancia del caché que ha sido operacional por el mayor tiempo. Si hay algún problema al recibir o al integrar el estado entonces el caché no inicia. "
#. Tag: para
#: State_transfer.xml:70
#, no-c-format
msgid "Initial state transfer will occur unless:"
-msgstr ""
+msgstr "La transferencia de estado inicial tendrá lugar a menos de que:"
#. Tag: para
#: State_transfer.xml:75
@@ -193,6 +197,8 @@
"literal>. This property is used in conjunction with region-based "
"marshalling; see below for more on this."
msgstr ""
+"La propiedad <literal>InactiveOnStartup</literal> del caché es <literal>true</"
+"literal>. Esta propiedad se utiliza en conjunto con la formación con base en regiones; vea a continuación para obtener más información sobre esto."
#. Tag: para
#: State_transfer.xml:80
@@ -200,7 +206,7 @@
msgid ""
"Buddy replication is used. See below for more on state transfer with buddy "
"replication."
-msgstr ""
+msgstr "Se utiliza la replicación de compañeros. Vea a continuación para obtener mayor información sobre la transferencia de estado con replicación de compañeros. "
#. Tag: para
#: State_transfer.xml:87
@@ -217,6 +223,8 @@
"responds with no state, state is requested from each instance one by one "
"until one provides state or all instances have been queried."
msgstr ""
+"Transferencia parcial de estado que sigue la activación de región. Sólo es relevante cuando se utiliza la formación con base en regiones. Aquí se necesita un cargador de clase especial para desformar el estado para una parte del árbol. La transferencia de estado no puede tener éxito hasta que la aplicación registra su cargador de clase con el caché. Una vez la aplicación registra su cargador de clase, este llama a <literal>activateRegion"
+"(String fqn)</literal>. Como parte del proceso de activación de la región se realiza una transferencia parcial de estado del estado relevante del sub-árbol. El estado se le pide a la instancia del caché más antiguo en el clúster; si esa instancia responde sin un estado entonces se le pide el estado a cada instancia una por una hasta que una de ella proporcione el estado o hasta que se le realice la petición a todas las instancias. "
#. Tag: para
#: State_transfer.xml:90
@@ -227,6 +235,8 @@
"literal>. This suppresses initial state transfer, which would fail due to "
"the inability to deserialize the transferred state."
msgstr ""
+"Usualmente cuando se utiliza la formación con base en regiones, la propiedad <literal>InactiveOnStartup</literal> del caché se configura como <literal>true</"
+"literal>. Esto contiene la transferencia de estado inicial, la cual fallaría debido a la inhabilidad de deserializar el estado transferido."
#. Tag: para
#: State_transfer.xml:95
@@ -242,6 +252,8 @@
"and receives state). However, the process of preparing and integrating the "
"state is the same."
msgstr ""
+"Replicación de compañeros. Cuando se utiliza la replicación de compañeros entonces se deshabilita la transferencia de estado inicial. En su lugar, cuando una instancia de caché se une al clúster se convierte en el compañero de una o más instancias y viceversa. Cada vez que una instancia determina que tiene un nuevo compañero proporcionando una copia de seguridad para este entonces empuja su estado actual al compañero nuevo. Este \"empuje"
+"\" de estado al nuevo compañero es un poco diferente de las otras formas de transferencia de estado, las cuales se basan en un enfoque de \"halar\" (por ejemplo, el recipiente pide y recibe el estado). Sin embargo, el proceso de preparar e integrar el estado es el mismo. "
#. Tag: para
#: State_transfer.xml:98
@@ -253,6 +265,10 @@
"buddies only occurs when the application calls <literal>activateRegion"
"(String fqn)</literal> on the various members of the group."
msgstr ""
+"Este \"empuje\" de estado sobre la formación del grupo de compañeros sólo tiene lugar si la propiedad "
+"<literal>InactiveOnStartup</literal> se configura como <literal>false</"
+"literal>. Si es <literal>true</literal>, la transferencia de estado entre los compañeros sólo ocurre cuando la aplicación llama a <literal>activateRegion"
+"(String fqn)</literal> en los miembros del grupo."
#. Tag: para
#: State_transfer.xml:101
@@ -264,5 +280,5 @@
"instances until one responds, with buddy replication the instance that is "
"activating a region will request partial state from each instance for which "
"it is serving as a backup."
-msgstr ""
+msgstr "La transferencia parcial de estado siguiendo a una llamada <literal>activateRegion()</literal> también es un poco diferente en el caso de la replicación de compañeros. En lugar de pedir un estado parcial de una instancia de caché y tratar con todas las instancias hasta que una responda, con la replicación de compañeros la instancia que está activando una región solicitará el estado parcial de cada instancia para las cuales sirve de respaldo. "
Modified: enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Treecache_marshaller.po
===================================================================
--- enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Treecache_marshaller.po 2008-10-27 22:25:21 UTC (rev 7019)
+++ enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Treecache_marshaller.po 2008-10-28 04:39:48 UTC (rev 7020)
@@ -8,7 +8,7 @@
"Project-Id-Version: Treecache_marshaller\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-09-21 04:44+0000\n"
-"PO-Revision-Date: 2008-10-17 12:17+1000\n"
+"PO-Revision-Date: 2008-10-28 11:52+1000\n"
"Last-Translator: Angela Garcia\n"
"Language-Team: <en(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -32,6 +32,8 @@
"mechanism to marshall and unmarshall data called the "
"<literal>TreeCacheMarshaller</literal>."
msgstr ""
+"En vez de utilizar la serialización Java estándar para serializar objetos <literal>java."
+"lang.reflect.Method</literal> y sus parámetros cuando cachés remotos se hablan entre sí para replicar datos, JBoss Cache utiliza su propio mecanismo para organizar y desorganizar datos llamado el <literal>TreeCacheMarshaller</literal>."
#. Tag: para
#: Treecache_marshaller.xml:9
@@ -48,13 +50,13 @@
"to use different classloaders on a per-region basis by allowing application "
"code to register a classloader that should be used to handle replication for "
"a portion of the tree."
-msgstr ""
+msgstr "Además de proporcionar las mejoras en rendimiento y eficiencia sobre la serialización Java estándar, el <literal>TreeCacheMarshaller</literal> también realiza otra función. Con el fin de deserializar un objeto replicado a este desde un caché remoto, una instancia de caché necesita tener acceso al cargador de clase que define la clase del objeto. Esto es simple si el propio cargador de clase del caché puede acceder las clases requeridas, pero para situaciones en donde JBoss Cache se utiliza como un servicio soportando clientes que utilizan diferentes cargadores de clase, el <literal>TreeCacheMarshaller</literal> se puede configurar para que utilice diferentes cargadores de clase en cada región permitiéndole al código de aplicación registrar un cargador de clase que se debe utilizar para manejar la replicación para una parte del árbol. "
#. Tag: title
#: Treecache_marshaller.xml:13
#, no-c-format
msgid "Basic Usage"
-msgstr ""
+msgstr "Uso básico"
#. Tag: para
#: Treecache_marshaller.xml:14
@@ -62,7 +64,7 @@
msgid ""
"<literal>TreeCache</literal> exposes the following basic API for controlling "
"the behavior of <literal>TreeCacheMarshaller</literal>:"
-msgstr ""
+msgstr "<literal>TreeCache</literal> expone la siguiente API básica para controlar el comportamiento de <literal>TreeCacheMarshaller</literal>:"
#. Tag: programlisting
#: Treecache_marshaller.xml:17
@@ -180,7 +182,7 @@
"classloader-based marshalling should be used. This property should be set as "
"part of normal cache configuration, typically in the cache's XML "
"configuration file:"
-msgstr ""
+msgstr "La propiedad <literal>UseRegionBasedMarshalling</literal> controla si se debe utilizar la reunión basada en cargador de clase. Esta propiedad se debe configurar como parte de la configuración normal de cache, usualmente en el archivo de configuración XML del caché:"
#. Tag: programlisting
#: Treecache_marshaller.xml:21
@@ -199,6 +201,9 @@
"classloader will be used to unmarshal any replication traffic related to the "
"node identified by the FQN or to any of its descendants."
msgstr ""
+"En cualquier momento despues de que <literal>UseRegionBasedMarshalling</literal> se configura como "
+"<literal>true</literal>, el código de la aplicación puede llamar a "
+"<literal>registerClassLoader</literal> para asociar un cargador de clase con la parte del caché con raíz en un FQN en particula. Una vez registrado, el cargador de clase se utilizará para separar cualquier tráfico de replicación relacionado con el nodo identificado por el FQN o con alguno de sus decendientes."
#. Tag: para
#: Treecache_marshaller.xml:25
@@ -206,7 +211,7 @@
msgid ""
"At this time, <literal>registerClassLoader</literal> only supports String-"
"based FQNs."
-msgstr ""
+msgstr "En este momento, <literal>registerClassLoader</literal> sólo soporta FQNs basados en cadenas."
#. Tag: para
#: Treecache_marshaller.xml:28
@@ -219,6 +224,8 @@
"be thrown if an attempt is made to register classloader <literal>Y</literal> "
"for FQN <literal>/a/b</literal>."
msgstr ""
+"Observe que es ilegal el registrar un cargador de clase para un FQN que sea decendiente de un FQN, para el cual un cargador de clase ya ha sido registrado. Por ejemplo, si el cargador de clase <literal>X</literal> está registrado para FQN "
+"<literal>/a</literal>, se presentará un <literal>RegionNameConflictException</literal> si se trata de registrar el cargador de clase <literal>Y</literal> para FQN <literal>/a/b</literal>."
#. Tag: para
#: Treecache_marshaller.xml:31
@@ -229,13 +236,13 @@
"call this method when you are done using the cache with a particular "
"classloader, or a reference to the classloader will be held, causing a "
"memory leak!"
-msgstr ""
+msgstr "El método <literal>unregisterClassLoader</literal> se utiliza para remover la asociación entre un cargador de clase y una región de caché en particular. Asegúrese de llamar a este método cuando haya terminado de utilizar el caché con un cargador de clase en particular o se mantendrá una referencia al cargador de clase, lo que generará una ¡fuga de memoria!"
#. Tag: title
#: Treecache_marshaller.xml:37
#, no-c-format
msgid "Region Activation/Inactivation"
-msgstr ""
+msgstr "Activación/Inactivación de regiones"
#. Tag: para
#: Treecache_marshaller.xml:38
@@ -247,37 +254,37 @@
"The result of this is that it is difficult or impossible to register all "
"required classloaders before a cache is started. For example, consider the "
"following scenario:"
-msgstr ""
+msgstr "La API básica que discutimos anteriormente es útil pero en situaciones en donde las aplicaciones con cargadores de clase diferentes están compartiendo un caché, el ciclo de vida de esas aplicaciones usualmente será diferente del ciclo de vida del caché. El resultado de esto es que es bastante dificil o imposible el registrar todos los cargadores de clase requeridos antes de iniciar un caché. Por ejemplo, considere el siguiente escenario: "
#. Tag: para
#: Treecache_marshaller.xml:43
#, no-c-format
msgid "TreeCache on machine A starts."
-msgstr ""
+msgstr "TreeCache inicia en la máquina A."
#. Tag: para
#: Treecache_marshaller.xml:46
#, no-c-format
msgid "On A a classloader is registered under FQN /x."
-msgstr ""
+msgstr "En A se registra un cargador de clase bajo FQN /x."
#. Tag: para
#: Treecache_marshaller.xml:49
#, no-c-format
msgid "Machine B starts, so TreeCache on B starts."
-msgstr ""
+msgstr "La máquina B inicia así que se inicia el TreeCache en B. "
#. Tag: para
#: Treecache_marshaller.xml:52
#, no-c-format
msgid "An object is put in the machine A cache under FQN /x/1."
-msgstr ""
+msgstr "Se pone un objeto en el caché de la máquina A bajo FQN /x/1."
#. Tag: para
#: Treecache_marshaller.xml:55
#, no-c-format
msgid "Replication to B fails, as the required classloader is not yet registered."
-msgstr ""
+msgstr "La replicación en B falla ya que el cargador de clase requerido aún no ha sido registrado. "
#. Tag: para
#: Treecache_marshaller.xml:58
@@ -285,7 +292,7 @@
msgid ""
"On B a classloader is registered under FQN /x, but too late to prevent the "
"replication error."
-msgstr ""
+msgstr "En B se registra un cargador de clase bajo FQN /x, pero es demasiado tarde para prevenir el error de replicación. "
#. Tag: para
#: Treecache_marshaller.xml:61
@@ -294,7 +301,7 @@
"Furthermore, if any objects had been added to server A before server B was "
"started, the initial transfer of state from A to B would have failed as "
"well, as B would not be able to unmarshal the transferred objects."
-msgstr ""
+msgstr "Además si se hubiese agregado cualquier objeto al servidor A antes de que se iniciara el servidor B entonces la transferencia inicial del estado de A a B habría fallado también ya que B no habría podido separar los objetos transferidos."
#. Tag: para
#: Treecache_marshaller.xml:64
@@ -306,6 +313,8 @@
"classloader has been registered, the portion of the tree can be \"activated"
"\". Activation causes the following events to occur:"
msgstr ""
+"Para solucionar este problema, si se utiliza la reunión con base en regiones entonces se puede configurar una instancia de caché para que ignore la replicación de eventos para una parte del árbol. La parte del árbol se considera \"inactiva\". Después de que se ha registrado el cargador de clase que se necesitaba se puede \"activar"
+"\" la parte del árbol. La activación generará los siguientes eventos:"
#. Tag: para
#: Treecache_marshaller.xml:69
@@ -313,7 +322,7 @@
msgid ""
"Any existing state for that portion of the tree is transferred from another "
"node in the cluster and integrated into the local tree."
-msgstr ""
+msgstr "Cualquier estado existente para esa parte del árbol se transfiere desde otro nodo en el clúster y se integra en el árbol local. "
#. Tag: para
#: Treecache_marshaller.xml:72
@@ -321,7 +330,7 @@
msgid ""
"TreeCacheMarshaller begins normal handling of replication traffic related to "
"the portion of the tree."
-msgstr ""
+msgstr "TreeCacheMarshaller inicia un manejo normal del tráfico de replicación relacionado a la parte del árbol."
#. Tag: para
#: Treecache_marshaller.xml:75
@@ -330,7 +339,7 @@
"In addition to the basic marshalling related API discussed above, TreeCache "
"exposes the following API related to activating and inactivating portions of "
"the cache:"
-msgstr ""
+msgstr "Además de la reunión básica relacionada con API que discutimos anteriormente, TreeCache expone la siguiente API relacionada con la activación e inactivación de partes del caché: "
#. Tag: programlisting
#: Treecache_marshaller.xml:78
@@ -478,6 +487,8 @@
"property should be set as part of normal cache configuration, typically in "
"the cache's XML configuration file:"
msgstr ""
+"La propiedad <literal>InactiveOnStartup</literal> controla si el caché entiro debe considerarse como inactivo cuando el caché inicia. En la mayoría de los casos en donde se necesita la activación de regiones, esta propiedad se configura como verdadera. Esta "
+"propiedad se debe configurar como parte de la configuración normal del caché usualmente en el archivo de configuración XML del caché:"
#. Tag: programlisting
#: Treecache_marshaller.xml:82
@@ -493,6 +504,8 @@
"will be performed on startup, even if property <literal>FetchInMemoryState</"
"literal> is true."
msgstr ""
+"Cuando <literal>InactiveOnStartup</literal> se configura como verdadero, no se realiza transferencia de estado en el arranque incluso si la propiedad <literal>FetchInMemoryState</"
+"literal> es verdadera."
#. Tag: para
#: Treecache_marshaller.xml:86
@@ -511,6 +524,9 @@
"cannot provide state. So, each node in the cluster is queried until one "
"provides state."
msgstr ""
+"Cuando se invoca a <literal>activateRegion()</literal>, se realizará una petición a cada nodo en el "
+"clúster para ver si tiene un estado activo para esa parte del árbol. Si uno de ellos lo está entonces retornará el estado actual, el cual se integrará en el árbol. Una vez el estado es transferido desde un nodo, no se le pedirá a ningún otro nodo el estado. Este proceso es algo diferente del proceso de transferencia del estado inicial que ocurre en el arranque cuando la propiedad "
+"<literal>FetchInMemoryState</literal> se configura como verdadera. Durante la transferencia de estado inicial, sólo se le hace una petición del estado al miembro más antiguo del clúster. Este enfoque es inadecuado para la activación de regiones ya que es posible que el miembro más antiguo del clúster también tenga la región inactivada y por lo tanto no puede proveer estado. Así que se realiza una petición a cada nodo en el clúster hasta que uno proporcione el estado."
#. Tag: para
#: Treecache_marshaller.xml:89
@@ -521,6 +537,9 @@
"tree being activated. If there is any, a <literal>RegionNotEmptyException</"
"literal> will be thrown."
msgstr ""
+"Antes de pedir el estado de otros nodos, <literal>activateRegion()</"
+"literal> confirmará que no hay datos en la parte del árbol que se está activando. Si hay alguno entonces se presentará una <literal>RegionNotEmptyException</"
+"literal>."
#. Tag: para
#: Treecache_marshaller.xml:92
@@ -535,13 +554,13 @@
"local activity on an inactive region, but, as discussed above "
"<literal>activateRegion()</literal> will throw an exception if it discovers "
"data in a region that is being activated."
-msgstr ""
+msgstr "Es importante el comprender que cuando una región del árbol está marcada como inactiva, esto sólo significa que se ignorará el trafico de replicación de otros nodos del clúster relacionados con esa parte del árbol. Técnicamente es posible poner los objetos en la parte inactiva del árbol localmente (por medio de una llamada <literal>put</literal>) y tal actividad local será replicada a otros nodos. TreeCache no prevendrá esta clase de actividad local en una región inactiva, pero como lo disuctimos anteriormente <literal>activateRegion()</literal> presentará una excepción si descubre datos en una región que está siendo activada."
#. Tag: title
#: Treecache_marshaller.xml:96
#, no-c-format
msgid "Example usage of Region Activation/Inactivation"
-msgstr ""
+msgstr "Ejemplo del uso de la activación/inactivación de una región"
#. Tag: para
#: Treecache_marshaller.xml:97
@@ -553,7 +572,7 @@
"<literal>/deploy</literal> directory. One of the users of this cache could "
"be a web application, which when started will register its classloader with "
"the TreeCache and activate its own region of the cache."
-msgstr ""
+msgstr "Como ejemplo del uso de la activación e inactivación de una región vamos a imaginar un caso en donde una instancia TreeCache se despliega como un servicio MBean compartido desplegando un <literal>-service.xml</literal> en el directorio <literal>/deploy</literal> de JBoss. Uno de los usuarios de este caché podría sera una aplicación web, la cual cuando inicia registra su cargador de clase con el TreeCache y activa su propia región del caché."
#. Tag: para
#: Treecache_marshaller.xml:100
@@ -561,7 +580,7 @@
msgid ""
"First, the XML configuration file for the shared cache service would be "
"configured as follows (only relevant portions are shown):"
-msgstr ""
+msgstr "Primero, el archivo de configuración XML para el servicio de caché compartido se configuraría así (sólo se muestran las partes relevantes):"
#. Tag: programlisting
#: Treecache_marshaller.xml:103
@@ -633,6 +652,8 @@
"<literal>ServletContextListener</literal> to manage these tasks seems "
"logical. Following is an example listener:"
msgstr ""
+"Para la aplicación web, el registrar/desregistrar el cargador de clase y el activar/"
+"inactivar la región de la aplicación en el caché son tareas que se deben realizar como parte de la inicialización y la destrucción de la aplicación. Así que el utilizar un <literal>ServletContextListener</literal> para administrar estas tareas parece bastante lógico. El siguiente es un ejemplo de escucha:"
#. Tag: programlisting
#: Treecache_marshaller.xml:107
@@ -736,6 +757,9 @@
"region and unregisters its classloader (thus ensuring that the classloader "
"isn't leaked via a reference to it held by TreeCacheMarshaller)."
msgstr ""
+"El escucha utiliza la clase de la utilidad de JBoss <literal>MBeanProxyExt</"
+"literal> para encontrar el TreeCache en JMX y crear un proxy en el, (vea la sección "
+"\"Ejecutar y utilizar TreeCache dentro de JBoss\" a continuación para obtener más información sobre cómo acceder a TreeCache). Después registra su cargador de clase con el caché y activa su región. Cuando la aplicación web se está destruyendo, esta inactiva su región y des-registra su cargador de calse (con lo cual se asegura de que el cargador de clase no se fuga a través de una referencia a este que el TreeCacheMarshaller mantenga)."
#. Tag: para
#: Treecache_marshaller.xml:111
@@ -744,13 +768,13 @@
"Note the order of the method calls in the example class -- register a "
"classloader before activating a region, and inactivate the region before "
"unregistering the classloader."
-msgstr ""
+msgstr "Observe que el orden de las llamadas de método en el ejemplo clase -- registra un cargador de clase antes de activar una región e inactiva la región antes de des-registrar el cargador de clase. "
#. Tag: title
#: Treecache_marshaller.xml:119
#, no-c-format
msgid "Region Activation/Inactivation with a CacheLoader"
-msgstr ""
+msgstr "Activación/inactivación de regiones con un CacheLoader"
#. Tag: para
#: Treecache_marshaller.xml:120
@@ -763,6 +787,9 @@
"literal> interface. It additionally specifies the following methods needed "
"to support the partial state transfer that occurs when a region is activated:"
msgstr ""
+"La API activateRegion()/inactivateRegion() se puede utilizar junto con un CacheLoader también, pero sólo si la implementación del cargador de caché implementa la interfaz <literal>org.jboss.cache.loader.ExtendedCacheLoader</"
+"literal>. Esta es una sub-interfaz de la interfaz normal <literal>CacheLoader</"
+"literal>. Además especifica los siguientes métodos que se necesitan para soportar la transferencia de estado parcial que tiene lugar cuando se activa una región:"
#. Tag: programlisting
#: Treecache_marshaller.xml:123
@@ -858,12 +885,16 @@
"FileCacheLoader and JDBCCacheLoader, respectively, implementing the extra "
"methods in the extended interface."
msgstr ""
+"Actualmente JBossCache viene con dos implementaciones de ExtendedCacheLoader, "
+"<literal>FileExtendedCacheLoader</literal> y "
+"<literal>JDBCExtendedCacheLoader</literal>. Esras clases extienden "
+"FileCacheLoader y JDBCCacheLoader, respectivamente, implementando los métodos extraa en la interfaz extendida."
#. Tag: title
#: Treecache_marshaller.xml:130
#, no-c-format
msgid "Performance over Java serialization"
-msgstr ""
+msgstr "Rendimiento sobre serialización Java"
#. Tag: para
#: Treecache_marshaller.xml:131
@@ -875,6 +906,8 @@
"types which drastically reduces the size of calls to remote caches, greatly "
"improving throughput and reducing the overhead of Java serialization."
msgstr ""
+"Para lograr ganancias sobre el rendimiento y eficiencia, el "
+"<literal>TreeCacheMarshaller</literal> utiliza un número de técnicas incluyendo ids de métodos para métodos conocidos y números mágicos para tipos de clase internos conocidos, los cuales reducen drásticamente el tamaño de las llamadas a cachés remotos, mejorando de manera importante el rendimiento y reduciendo el costo de la serialización Java."
#. Tag: para
#: Treecache_marshaller.xml:134
@@ -890,12 +923,15 @@
"the <literal>-Dserialization.jboss=false</literal> environment variable into "
"your JVM."
msgstr ""
+"Para hacer las cosas incluso más rápidas, el <literal>TreeCacheMarshaller</literal> utiliza "
+"<ulink url=\"http://labs.jboss.org/portal/index.html?ctrl:id=page.default."
+"info&project=serialization\">JBoss Serialization</ulink>, un reemplazo altamente eficiente para la serialización Java para clases definidas por el usuario. JBoss Serialization siempre se habilita y se utiliza por defecto aunque también se puede deshabilitar, causando la reunión de clases definidas por el usuario para revertir a la serialización Java. JBoss Serialization se deshabilita pasando la variable de entorno <literal>-Dserialization.jboss=false</literal> en su MVJ."
#. Tag: title
#: Treecache_marshaller.xml:140
#, no-c-format
msgid "Backward compatibility"
-msgstr ""
+msgstr "Compatibilidad retroactiva"
#. Tag: para
#: Treecache_marshaller.xml:141
@@ -911,6 +947,8 @@
"than JBoss Cache) still exists, even though with JBoss Cache 1.4.0, we've "
"moved to a much more efficient and sophisticated marshalling mechanism."
msgstr ""
+"La formación en JBoss Cache ahora cuenta con versiones. Todas las comunicaciones entre cachés tienen una versión <literal>short</literal>, la cual le permite a las instancias de JBoss Cache de versiones diferente comunicarse entre ellas. Hasta JBoss Cache 1.4.0, todas las versiones podían comunicarse entre ella ya que todas utilizaban una serialización simple de objetos <literal>org.jgroups."
+"MethodCall</literal>, dado que todos utilizaran la misma versión de JGroups. Este requerimiento (más un requerimiento de la capa de mensajería de JGroups que de JBoss Cache) todavía existe aunque con JBoss Cache 1.4.0, no hemos movido hacia una mecanismo de formación mucho más eficiente y sofisticado."
#. Tag: para
#: Treecache_marshaller.xml:144
@@ -922,6 +960,8 @@
"older versions, however, you would have to start JBoss Cache with the "
"following configuration attribute:"
msgstr ""
+"JBoss Cache 1.4.0 y lanzamientos futuros de JBoss Cache siempre podrán separar datos de versiones anteriores de JBoss Cache. Sin embargo, para JBoss Cache 1.4.0 "
+"y lanzamientos futuros para poder formar datos en un formato compatible con versiones anteriores debe iniciar JBoss Cache con los siguientes atributos de configuración:"
#. Tag: programlisting
#: Treecache_marshaller.xml:145
16 years, 2 months
JBoss Cache SVN: r7019 - in enterprise-docs/trunk: Cache_Pojo_Cache_Guide/en-US and 2 other directories.
by jbosscache-commits@lists.jboss.org
Author: irooskov(a)redhat.com
Date: 2008-10-27 18:25:21 -0400 (Mon, 27 Oct 2008)
New Revision: 7019
Modified:
enterprise-docs/trunk/Cache_FAQ/en-US/Book_Info.xml
enterprise-docs/trunk/Cache_Pojo_Cache_Guide/en-US/Book_Info.xml
enterprise-docs/trunk/Cache_Tree_Cache_Guide/en-US/Book_Info.xml
enterprise-docs/trunk/Cache_Tutorial/en-US/Book_Info.xml
Log:
updated book info with cumulative typing error fix
Modified: enterprise-docs/trunk/Cache_FAQ/en-US/Book_Info.xml
===================================================================
--- enterprise-docs/trunk/Cache_FAQ/en-US/Book_Info.xml 2008-10-27 18:39:16 UTC (rev 7018)
+++ enterprise-docs/trunk/Cache_FAQ/en-US/Book_Info.xml 2008-10-27 22:25:21 UTC (rev 7019)
@@ -3,7 +3,7 @@
<bookinfo>
<title>JBoss Cache Frequently Asked Questions CP03</title>
- <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cummulative Patch 3</subtitle>
+ <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 3</subtitle>
<edition>2.0</edition>
<pubsnumber>1</pubsnumber>
<productname>JBoss Enterprise Application Platform</productname>
Modified: enterprise-docs/trunk/Cache_Pojo_Cache_Guide/en-US/Book_Info.xml
===================================================================
--- enterprise-docs/trunk/Cache_Pojo_Cache_Guide/en-US/Book_Info.xml 2008-10-27 18:39:16 UTC (rev 7018)
+++ enterprise-docs/trunk/Cache_Pojo_Cache_Guide/en-US/Book_Info.xml 2008-10-27 22:25:21 UTC (rev 7019)
@@ -3,7 +3,7 @@
<bookinfo id="Pojo_Cache">
<title>JBoss Cache Pojo Cache Guide CP03</title>
- <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cummulative Patch 3</subtitle>
+ <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 3</subtitle>
<edition>2.0</edition>
<pubsnumber>1</pubsnumber>
<productname>JBoss Enterprise Application Platform</productname>
Modified: enterprise-docs/trunk/Cache_Tree_Cache_Guide/en-US/Book_Info.xml
===================================================================
--- enterprise-docs/trunk/Cache_Tree_Cache_Guide/en-US/Book_Info.xml 2008-10-27 18:39:16 UTC (rev 7018)
+++ enterprise-docs/trunk/Cache_Tree_Cache_Guide/en-US/Book_Info.xml 2008-10-27 22:25:21 UTC (rev 7019)
@@ -3,7 +3,7 @@
<bookinfo id="JBoss_Cache_Tree_Cache___A_Structured_Replicated_Transactional_Cache">
<title>JBoss Cache Tree Cache Guide CP03</title>
- <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cummulative Patch 3</subtitle>
+ <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 3</subtitle>
<edition>2.0</edition>
<pubsnumber>1</pubsnumber>
<productname>JBoss Enterprise Application Platform</productname>
Modified: enterprise-docs/trunk/Cache_Tutorial/en-US/Book_Info.xml
===================================================================
--- enterprise-docs/trunk/Cache_Tutorial/en-US/Book_Info.xml 2008-10-27 18:39:16 UTC (rev 7018)
+++ enterprise-docs/trunk/Cache_Tutorial/en-US/Book_Info.xml 2008-10-27 22:25:21 UTC (rev 7019)
@@ -3,7 +3,7 @@
<bookinfo id="JBoss_Cache">
<title>JBoss Cache Tutorial CP03</title>
- <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cummulative Patch 3</subtitle>
+ <subtitle>for Use with JBoss Enterprise Application Platform 4.3 Cumulative Patch 3</subtitle>
<edition>2.0</edition>
<pubsnumber>1</pubsnumber>
<productname>JBoss Enterprise Application Platform</productname>
16 years, 2 months
JBoss Cache SVN: r7018 - core/trunk/src/main/java/org/jboss/cache/config/parsing.
by jbosscache-commits@lists.jboss.org
Author: jason.greene(a)jboss.com
Date: 2008-10-27 14:39:16 -0400 (Mon, 27 Oct 2008)
New Revision: 7018
Modified:
core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser2x.java
Log:
Make this stuff accessible to POJO Cache
Modified: core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser2x.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser2x.java 2008-10-27 17:33:57 UTC (rev 7017)
+++ core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser2x.java 2008-10-27 18:39:16 UTC (rev 7018)
@@ -250,7 +250,7 @@
}
}
- private static BuddyReplicationConfig parseBuddyReplicationConfig(Element element)
+ public static BuddyReplicationConfig parseBuddyReplicationConfig(Element element)
{
BuddyReplicationConfig brc = new BuddyReplicationConfig();
brc.setEnabled(XmlConfigHelper.readBooleanContents(element, "buddyReplicationEnabled"));
@@ -299,7 +299,7 @@
return brc;
}
- private static CacheLoaderConfig parseCacheLoaderConfig(Element element)
+ public static CacheLoaderConfig parseCacheLoaderConfig(Element element)
{
CacheLoaderConfig clc = new CacheLoaderConfig();
clc.setPassivation(XmlConfigHelper.readBooleanContents(element, "passivation"));
16 years, 2 months
JBoss Cache SVN: r7017 - core/trunk/src/main/java/org/jboss/cache.
by jbosscache-commits@lists.jboss.org
Author: jason.greene(a)jboss.com
Date: 2008-10-27 13:33:57 -0400 (Mon, 27 Oct 2008)
New Revision: 7017
Modified:
core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
Log:
Re-add eclipse compiler casts
Modified: core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java 2008-10-27 05:01:55 UTC (rev 7016)
+++ core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java 2008-10-27 17:33:57 UTC (rev 7017)
@@ -461,7 +461,9 @@
{
// replace key!
Entry<? extends K, ? extends V> e = data.entrySet().iterator().next();
- this.data = Collections.singletonMap(e.getKey(), e.getValue());
+
+ // These casts are a work-around for an eclipse compiler bug, please don't remove ;)
+ this.data = Collections.singletonMap((K)e.getKey(), (V) e.getValue());
}
else
{
16 years, 2 months
JBoss Cache SVN: r7016 - enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES.
by jbosscache-commits@lists.jboss.org
Author: mospina
Date: 2008-10-27 01:01:55 -0400 (Mon, 27 Oct 2008)
New Revision: 7016
Modified:
enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Transactions.po
Log:
translation in progress
Modified: enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Transactions.po
===================================================================
--- enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Transactions.po 2008-10-26 21:31:15 UTC (rev 7015)
+++ enterprise-docs/tags/JBoss_EAP_4_3/Cache_Tree_Cache_Guide/es-ES/Transactions.po 2008-10-27 05:01:55 UTC (rev 7016)
@@ -8,7 +8,7 @@
"Project-Id-Version: Transactions\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-09-21 04:44+0000\n"
-"PO-Revision-Date: 2008-10-17 12:15+1000\n"
+"PO-Revision-Date: 2008-10-27 14:50+1000\n"
"Last-Translator: Angela Garcia\n"
"Language-Team: <en(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,13 +20,13 @@
#: Transactions.xml:5
#, no-c-format
msgid "Transactions and Concurrency"
-msgstr ""
+msgstr "Transacciones y concurrencia"
#. Tag: title
#: Transactions.xml:7
#, no-c-format
msgid "Concurrent Access"
-msgstr ""
+msgstr "Acceso concurrente"
#. Tag: para
#: Transactions.xml:8
@@ -35,13 +35,13 @@
"JBoss Cache uses a pessimistic locking scheme by default to prevent "
"concurrent access to the same data. Optimistic locking may alternatively be "
"used, and is discussed later."
-msgstr ""
+msgstr "JBoss Cache utiliza un esquema de bloqueo pesimista por defecto para prevenir acceso concurrente a los mismo datos. Alternativamente se puede utilizar el bloqueo optimista y lo vamos a discutir más adelante."
#. Tag: title
#: Transactions.xml:12
#, no-c-format
msgid "Locks"
-msgstr ""
+msgstr "Bloqueos"
#. Tag: para
#: Transactions.xml:13
@@ -53,6 +53,8 @@
"hold locks for \"a\", \"b\" and \"c\", we only need to acquire a lock for \"d"
"\"."
msgstr ""
+"El bloqueo se realiza internamente, a nivel de nodo. Por ejemplo cuando queremos acceder a \"/a/b/c\", se adquirirá un bloqueo para los nodos \"a\", \"b\" y \"c\". Cuando la misma transacción quiere acceder a \"/a/b/c/d\" ya que ya tenemos bloqueos para \"a\", \"b\" y \"c\", por lo tanto sólo necesitamos adquirir un bloqueo para \"d"
+"\"."
#. Tag: para
#: Transactions.xml:16
@@ -66,7 +68,7 @@
"two-phase commit protocol (see below) across the cluster, the "
"<literal>GlobalTransaction</literal> uniquely identifies the unit of work "
"across a cluster."
-msgstr ""
+msgstr "Los propietarios de los bloqueos pueden ser las transacciones (una llamada se realiza dentro del ámbito de una transacción existente) o también pueden ser hilos (no hay transacciones asociadas con la llamada). Sin importar cual sea, una transacción o un hilo es transformado internamente en una instancia de <literal>GlobalTransaction</literal>, el cual se utiliza como un ID único global para modificaciones a través del clúster. Por ejemplo, cuando ejecutamos a un protocolo para guardar los cambios en dos fases (vea c continuación), el <literal>GlobalTransaction</literal> identifica de manera única la unidad de trabajo a través de un clúster. "
#. Tag: para
#: Transactions.xml:19
@@ -79,7 +81,7 @@
"has to wait until all read locks have been released. When scheduled "
"concurrently, write locks always have precedence over read locks. Note that "
"(if enabled) read locks can be upgraded to write locks."
-msgstr ""
+msgstr "Los bloqueos pueden ser de lectura o de escritura. Los bloqueos de escritura serializan el acceso de escritura y de lectura en tanto que los bloqueos de sólo lectura solamente serializan el acceso de lectura. Cuando un bloqueo de lectura se mantiene, no se pueden adquirir otros bloqueos de lectura o de escritura. Cuando se mantiene un bloqueo de lectura, los otros pueden adquirir bloqueos de lectura. Sin embargo, para adquirir bloqueos de escritura, tiene que esperar hasta que todos los bloqueos de lectura hayan sido liberados. Cuando se programan de manera concurrente, los bloqueos de escritura siempre tienen precedencia sobre los bloqueos de lectura. Obsreve que los bloqueos de lectura se pueden actualizar a bloqueos de escritura (si se habilita). "
#. Tag: para
#: Transactions.xml:22
@@ -94,12 +96,15 @@
"lock for \"/a/b/n2\". This allows for more concurrency in accessing the "
"cache."
msgstr ""
+"El utilizar bloqueos de lectura-escritura ayuda en el siguiente escenario: considere un árbol con las entradas \"/a/b/n1\" y \"/a/b/n2\". Con bloqueos de escritura, cuando Tx1 accede a \"/"
+"a/b/n1\", Tx2 no puede acceder a \"/a/b/n2\" hasta que Tx1 haya completado y liberado sus bloqueos. Sin embargo, esto es posible con bloqueos de lectura-escritura ya que Tx1 "
+"adquiere bloqueos de lectura para \"/a/b\" y un bloqueo de lectura-escritura para \"/a/b/n1\". Entonces Tx2 puede adquirir bloqueos de lectura para \"/a/b\" también además de un bloqueo de lectura-escritura para \"/a/b/n2\". Esto permite mayor concurrencia al acceder el caché. "
#. Tag: title
#: Transactions.xml:28
#, no-c-format
msgid "Pessimistic locking"
-msgstr ""
+msgstr "Bloqueo pesimista"
#. Tag: para
#: Transactions.xml:29
@@ -108,13 +113,13 @@
"By default, JBoss Cache uses pessimistic locking. Locking is not exposed "
"directly to user. Instead, a transaction isolation level which provides "
"different locking behaviour is configurable."
-msgstr ""
+msgstr "Por defecto, JBoss Cache utiliza el bloqueo pesimista. El bloqueo no se expone directamente al usuario. En su lugar es configurable un nivel de aislamiento de transacción, el cual proporciona un comportamiento de bloqueo diferente. "
#. Tag: title
#: Transactions.xml:33
#, no-c-format
msgid "Isolation levels"
-msgstr ""
+msgstr "Niveles de aislamiento"
#. Tag: para
#: Transactions.xml:34
@@ -125,6 +130,8 @@
"isolation level of NONE, READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, "
"or SERIALIZABLE. REPEATABLE_READ is the default isolation level used."
msgstr ""
+"JBoss Cache soporta los siguientes niveles de aislamiento de transacciones, análogo a los niveles de aislamiento ACID de la base de datos. Un usuario puede configurar un nivel de aislamiento que abarca una instancia de NONE, READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, "
+"o SERIALIZABLE. REPEATABLE_READ es el nivel de aislamiento predeterminado."
#. Tag: para
#: Transactions.xml:39
@@ -133,7 +140,7 @@
"NONE. No transaction support is needed. There is no locking at this level, e."
"g., users will have to manage the data integrity. Implementations use no "
"locks."
-msgstr ""
+msgstr "NONE. No se necesita soporte de transacciones. No hay bloqueo a este nivel, por ejemplo, los usuarios tendrán que administrar la integridad de los datos. Las implementacione no utilizan bloqueos."
#. Tag: para
#: Transactions.xml:44
@@ -150,6 +157,13 @@
"Implementations typically use an exclusive lock for writes while reads don't "
"need to acquire a lock."
msgstr ""
+"READ_UNCOMMITTED. Los datos se pueden leer en cualquier momento mientras que las operaciones de escritura son "
+"exclusivas. Observe que este nivel no previene la llamada \"lectura sucia\" "
+"en donde los datos modificados en Tx1 pueden ser leidos en Tx2 antes de que Tx1 guarde los cambios. En otras palabras, si tiene la siguiente secuencia, <programlisting>\n"
+" Tx1 Tx2\n"
+" W\n"
+" R\n"
+"</programlisting> utilizando este nivel de aislamiento Tx2 no realizará la lectura. Las implementaciones usualmente utilizan un bloqueo exclusivo para escrituras mientras que las lecturas no necesitan adquirir un bloqueo."
#. Tag: para
#: Transactions.xml:50
@@ -159,7 +173,7 @@
"level prevents the dirty read. But it doesn’t prevent the so-called "
"‘non-repeatable read’ where one thread reads the data twice can "
"produce different results. For example, if you have the following sequence,"
-msgstr ""
+msgstr "READ_COMMITTED. Los datos se pueden leer en cualquier momento en tanto no hayan escrituras. Este nivel previene la lectura sucia. Pero no previene la llamada lectura no-repetible; en donde un hilo lee los datos dos veces puede producir resultados diferentes. Por ejemplo, si tiene la siguiente secuencia:"
#. Tag: programlisting
#: Transactions.xml:51
@@ -179,7 +193,7 @@
#: Transactions.xml:53
#, no-c-format
msgid "where the second read in Tx1 thread will produce different result."
-msgstr ""
+msgstr "en donde la segunda lectura en el hilo Tx1 producirá un resultado diferente. "
#. Tag: para
#: Transactions.xml:56
@@ -193,7 +207,7 @@
"a read-lock; this leads to nonrepeatable reads, where 2 reads of the same "
"data might return different values. Note that, the write only applies "
"regardless of transaction state (whether it has been committed or not)."
-msgstr ""
+msgstr "Las implementaciones usualmente utilizan un bloquoe de lectura-escritura; las lecturas tienen éxito al adquiri el bloqueo cuando sólo hay lecturas, las escrituras tienen que esperar hasta que no hayan más lectores con bloqueos y los lectores son bloqueados adquiriendo el bloqueo hasta que no hay más escritores con bloqueos. Las lecturas usualmente liberan el bloqueo de lectura cuando han terminado de manera que una lectura subsecuente en los mismos datos tiene que volver a adquirir un bloqueo de lectura, esto conlleva a lecturas no repetible, en donde dos lecturas de los mismo datos pueden retornar valores diferentes. Observe que la escritura sólo aplica sin importar el estado de la transacción (ya sea que se hayan guardado los cambios o no). "
#. Tag: para
#: Transactions.xml:61
@@ -204,7 +218,7 @@
"called \"phantom read\" where new data can be inserted into the tree from "
"the other transaction. Implementations typically use a read-write lock. This "
"is the default isolation level used."
-msgstr ""
+msgstr "REPEATABLE_READ. Los datos se pueden leer en tanto no haya escrituras y viceversa. Este nivel previene \"lecturas no-repetibles\" pero no previene la llamada \"lectura fantasma\" en donde se pueden insertar nuevos datos en el árbol desde otra transacción. Las implementaciones usualmente utilizan un bloqueo de lectura-escritura. Este es el nivel de aislamiento predeterminado."
#. Tag: para
#: Transactions.xml:66
@@ -214,13 +228,13 @@
"writer or reader can have the lock at any given time. Locks are released at "
"the end of the transaction. Regarded as very poor for performance and thread/"
"transaction concurrency."
-msgstr ""
+msgstr "SERIALIZABLE. El acceso a los datos es sincronizado con bloqueos exclusivos. Sólo un escritor o lector puede tener el bloqueo en un momento dado. Los bloqueos se liberan al final de la transacción. Se considera como muy malo para el rendimiento y la concurrencia de hilos/transacciones."
#. Tag: title
#: Transactions.xml:74
#, no-c-format
msgid "Insertion and Removal of Nodes"
-msgstr ""
+msgstr "Inserción y eliminación de nodos"
#. Tag: para
#: Transactions.xml:75
@@ -237,13 +251,13 @@
"<literal>false</literal>, insertions and removals of child nodes only "
"require the acquisition of a <emphasis>read lock</emphasis> on the parent "
"node."
-msgstr ""
+msgstr "Por defecto, antes de insertar un nuevo nodo en el árbol o antes de remover un nodo existente del árbol, JBoss Cache tratará de adquirir un bloqueo de escritura en el nodo padre del nodo. Este enfoque trata los nodos hijos como una parte integral del estado de un nodo padre. Este enfoque es más correcto pero con un costo de menor concurrencia si se añaden o se eliminan nodos con frecuencia. En casos en donde este enfoque no es útil, JBoss Cache proporciona una opción de configuración <literal>LockParentForChildInsertRemove</literal>. Si esto se configura como <literal>false</literal>, las inserciones o la eliminación de nodos hijos sólamente requiere la adquisición de un <emphasis>bloqueo de lectura</emphasis> en el nodo padre. "
#. Tag: title
#: Transactions.xml:83
#, no-c-format
msgid "Optimistic locking"
-msgstr ""
+msgstr "Bloqueo optimista"
#. Tag: para
#: Transactions.xml:84
@@ -256,13 +270,13 @@
"locking allows for greater concurrency of threads and transactions by using "
"a technique called data versioning, explained here. Note that isolation "
"levels (if configured) are ignored if optimistic locking is enabled."
-msgstr ""
+msgstr "La motivación para el bloqueo optimista es mejorar la concurrencia. Cuando bastantes hilos necesitan acceder al aŕbol de datos puede llegar a ser bastante ineficiente el bloquear partes del árbol -para lectura o para escritura- durante toda una transacción como lo hacemos en el bloqueo pesimista. El bloqueo optimista permite una mayor concurrencia de hilos y transacciones utilizando una técnica llamada versión de datos que vamos a explicar aqui. Observe que los niveles de aislamiento (si se configuran) se ignoran si el bloqueo optimista se encuentra habilitado. "
#. Tag: title
#: Transactions.xml:88
#, no-c-format
msgid "Architecture"
-msgstr ""
+msgstr "Arquitectura"
#. Tag: para
#: Transactions.xml:89
@@ -276,6 +290,9 @@
"invocation completes. Each transaction maintains a transaction workspace, "
"which contains a copy of the data used within the transaction."
msgstr ""
+"El bloqueo optimista trata todas las llamadas de método como transaccionales<footnote><para> "
+"Debido a este requerimiento siempre debe contar con un administrador de transacciones configurado al utilizar el bloqueo optimista. </para> </footnote>. Incluso si no invoca una llamda dentro del ámbito de una transacción en curso, JBoss Cache "
+"crea una transacción implícita y guarda los cambios de esta transacción cuando la invocación se completa. Cada transacción mantiene un espacio de trabajo, el cual contiene una copia de los datos usados dentro de la transacción."
#. Tag: para
#: Transactions.xml:95
@@ -291,7 +308,7 @@
"change it and commit before the first transaction can finish - the "
"transaction throws a <literal>RollbackException</literal> when committing "
"and the commit fails."
-msgstr ""
+msgstr "Por ejemplo, si una transacción llama a get(\"/a/b/c\"), los nodos a, b y c son copiados desde el árbol principal de datos en el espacio de trabajo. Se le da una versión a los datos y todas las llamadas en la transacción trabajan en la copia de los datos en vez de trabajar en los datos mismos. Cuando la transacción guarda los cambios, su espacio de trabajo se fusiona en el árbol subyacente observando el número de las versiones. Si hay alguna versión que no coincida - tal como cuando el árbol de datos mismo tiene una versión mayor que la del espacio de trabajo, en el caso en que otra transacción fuera a acceder los mismos datos, cámbiela y guarde los cambios antes de que la primera transacción pueda terminar - la transacción presenta una <literal>RollbackException</literal> al guardar los cambios y por lo tanto falla."
#. Tag: para
#: Transactions.xml:98
@@ -301,7 +318,7 @@
"only held for a very short duration - at the start of a transaction to build "
"a workspace, and when the transaction commits and has to merge data back "
"into the tree."
-msgstr ""
+msgstr "El bloqueo optimista utiliza los mismos bloqueos que mencionamos anteriormente, pero los bloqueos sólo se mantienen por un cortor tiempo -al principio de la transacción para construir un espacio de trabajo y luego cuando la transacción guarda los cambios y tiene que fusionar los datos en el árbol."
#. Tag: para
#: Transactions.xml:101
@@ -312,7 +329,7 @@
"inevitable overhead and extra processing of maintaining workspaces, "
"versioned data and validating on commit, it does buy you a near-SERIALIZABLE "
"degree of data integrity while maintaining a very high level of concurrency."
-msgstr ""
+msgstr "Así que aunque puede que el bloqueo optimista falle ocasionalmente si las validaciones de versiones fallan o puede que ejecuten un poco más despacio que el bloqueo pesimista debido al sobrecargo inevitable y el extra procesamiento de mantener espacios de trabajo, los datos con versiones y la validación al guardar los cambios, este si le proporciona un nivel casi -SERIALIZABLE de integridad de los datos manteniendo un alto nivel de concurrencia. "
#. Tag: title
#: Transactions.xml:107
@@ -326,7 +343,7 @@
msgid ""
"Optimistic locking is enabled by using the NodeLockingScheme XML attribute, "
"and setting it to \"OPTIMISTIC\":"
-msgstr ""
+msgstr "El bloqueo optimista se habilita utilizando el atributo XML NodeLockingScheme y configurándolo como \"OPTIMISTIC\": "
#. Tag: programlisting
#: Transactions.xml:108
@@ -354,7 +371,7 @@
#: Transactions.xml:116
#, no-c-format
msgid "Transactional Support"
-msgstr ""
+msgstr "Soporte transaccional"
#. Tag: para
#: Transactions.xml:117
@@ -366,19 +383,19 @@
"modifications are potentially<footnote><para> Depending on whether interval-"
"based asynchronous replication is used </para> </footnote> replicated after "
"every change (if replication is enabled)."
-msgstr ""
+msgstr "JBoss Cache se puede configurara para utilizar transacciones que reunan unidades de trabajo, las cuales después pueden ser replicadas como una unidad. Alternativamente, si el soporte de transacción se deshabilita, es equivalente a configurar AutoCommit to en donde las modificaciones son potencialmente<footnote><para> Dependiendo de si utiliza la replicación asincrónica basada en intervalos</para> </footnote> replicadas después de cada cambio (si la replicación está habilitada)."
#. Tag: para
#: Transactions.xml:123
#, no-c-format
msgid "What JBoss Cache does on every incoming call (e.g. put()) is:"
-msgstr ""
+msgstr "Lo que JBoss Cache hace en cada llamada entrante es (por ejemplo, put()): "
#. Tag: para
#: Transactions.xml:128
#, no-c-format
msgid "get the transaction associated with the thread"
-msgstr ""
+msgstr "obtener la transacción asociada con el hilo"
#. Tag: para
#: Transactions.xml:133
@@ -386,7 +403,7 @@
msgid ""
"register (if not already done) with the transaction manager to be notified "
"when a transaction commits or is rolled back."
-msgstr ""
+msgstr "registrar (si todavía no se ha hecho) con el administrador de transacciones para que sea notificado cuando una transacción guarda cambios o si los deshace."
#. Tag: para
#: Transactions.xml:138
@@ -396,6 +413,8 @@
"<literal>TransactionManagerLookup</literal> which returns a <literal>javax."
"transaction.TransactionManager</literal>."
msgstr ""
+"Con elf in de lograr esto, el caché tiene que ser configurado con una instancia de un <literal>TransactionManagerLookup</literal>, el cual retorna un <literal>javax."
+"transaction.TransactionManager</literal>."
#. Tag: para
#: Transactions.xml:141
@@ -413,6 +432,11 @@
"outside a Java EE Application Server. Being a dummy, however, this is just "
"for demo and testing purposes and is not recommended for production use."
msgstr ""
+"JBoss Cache se envía junto con <literal>JBossTransactionManagerLookup</literal> y "
+"<literal>GenericTransactionManagerLookup</literal>. El "
+"<literal>JBossTransactionManagerLookup</literal> se puede enlazara a un JBoss Application Server ya en ejecución y puede recuperar un <literal>TransactionManager</"
+"literal> mientras que el <literal>GenericTransactionManagerLookup</literal> se puede enlazar a los servidores de aplicaciones Java EE más populares y proporcionan la misma funcionalidad. También se proporciona una implementación de prueba - "
+"<literal>DummyTransactionManagerLookup</literal>, la cual se puede utilizar para aplicaciones JBoss Cache autónomas y pruebas de unidades ejecutando por fuera de un servidor de aplicaciones Java EE. Sin embargo, ya que es sólo de prueba no se recomienda para uso en producción."
#. Tag: para
#: Transactions.xml:144
@@ -420,7 +444,7 @@
msgid ""
"The implementation of the <literal>JBossTransactionManagerLookup</literal> "
"is as follows:"
-msgstr ""
+msgstr "La implementación de <literal>JBossTransactionManagerLookup</literal> es la siguiente:"
#. Tag: programlisting
#: Transactions.xml:147
@@ -456,7 +480,7 @@
msgid ""
"The implementation looks up the JBoss Transaction Manager from JNDI and "
"returns it."
-msgstr ""
+msgstr "La implementación busca el administrador de transacciones de JBoss en JNDI y lo retorna."
#. Tag: para
#: Transactions.xml:151
@@ -470,7 +494,7 @@
"the <literal>TreeCache</literal> registers with the transaction to be "
"notified of transaction committed or aborted when it first encounters the "
"transaction."
-msgstr ""
+msgstr "Cuando una llama entra, el <literal>TreeCache</literal> obtiene la transacción actual y registra la modificación bajo la transacción como clave, (si no hay una transacción, la modificación se aplica de manera inmediata y posiblemente se replica). Así que durante la vida de la transacción todas las modificaciones se registrarán y se asociarán con la transacción. También el <literal>TreeCache</literal> se registra con la transacción a ser notificada de la transacción que ha guardado los cambios o que ha abortado cuando primero encuentra la transacción."
#. Tag: para
#: Transactions.xml:154
@@ -478,7 +502,7 @@
msgid ""
"When a transaction rolls back, we undo the changes in the cache and release "
"all locks."
-msgstr ""
+msgstr "Cuando una transacción se deshace, deshacemos los cambios en el caché y se liberan todos los bloqueos. "
#. Tag: para
#: Transactions.xml:157
@@ -492,6 +516,9 @@
"then sends back a success message. If a node in a cluster cannot acquire all "
"locks, or fails otherwise, it sends back a failure message."
msgstr ""
+"Cuando una transacción guarda los cambios, iniciamos un protocolo en dos fases para guardar los cambios<footnote><para> Sólo con replicación sincrónica o invalidación. "
+"</para> </footnote> : en la primera fase, se envía un PREPARE que contiene todas las modificaciones para la transacción actual a todos los nodos en el "
+"clúster. Cada nodo adquiere todos los bloqueos necesarios y aplica los cambios y luego envía un mensaje de éxito. Si un nodo en un clúster no puede adquirir todos los bloqueos o si falla entonces envía un mensaje de falla."
#. Tag: para
#: Transactions.xml:163
@@ -503,7 +530,7 @@
"initiated: a ROLLBACK message is sent to all nodes in the cluster. On "
"reception of the ROLLBACK message, every node undoes the changes for the "
"given transaction, and releases all locks held for the transaction."
-msgstr ""
+msgstr "El coordinado del protocolo de dos fases para guardar los cambios espera por todas las respuestas (o desconecta por tiempo, lo que ocurra primero). Si uno de los nodos en el clúster responde FAIL (o alcanzamos el tiempo de expiración) entonces se inicia una fase para deshacer la transacción: se envía un mensaje ROLLBACK a todos los nodos en el clúster. Al recibir el mensaje de ROLLBACK todos los nodos deshacen los cambios para la transacción dada y libera todos los bloqueos que se mantienen en la transacción. "
#. Tag: para
#: Transactions.xml:166
@@ -513,6 +540,8 @@
"cluster. On reception of a COMMIT message, each node applies the changes for "
"the given transaction and releases all locks associated with the transaction."
msgstr ""
+"Si todas las respuestas están OK, entonces se envía un mensaje COMMIT a todos los nodos en el "
+"clúster. Al recibir un mensaje de COMMIT, cada nodo aplica los cambios para la transacción dad y libera todos los bloqueos asociados con la transacción."
#. Tag: para
#: Transactions.xml:169
@@ -521,7 +550,7 @@
"When we referred to 'transaction', we actually mean a global representation "
"of a local transaction, which uniquely identifies a transaction across a "
"cluster."
-msgstr ""
+msgstr "Cuando nos referimos a una 'transacción', de hecho lo que queremos decir es una representación global de una transacción local, la cual identifica de manera única una transacción a través de un clúster. "
#. Tag: title
#: Transactions.xml:173
@@ -535,7 +564,7 @@
msgid ""
"Let's look at an example of how to use JBoss Cache in a standalone (i.e. "
"outside an application server) fashion with dummy transactions:"
-msgstr ""
+msgstr "Vamos a ver el ejemplo de cómo utilizar JBoss Cache de una manera autónoma (por ejemplo, por fuera de un servidor de aplicaciones) con transacciones de prueba:"
#. Tag: programlisting
#: Transactions.xml:177
@@ -589,7 +618,7 @@
msgid ""
"The first lines obtain a user transaction using the 'JEE way' via JNDI. Note "
"that we could also say"
-msgstr ""
+msgstr "La primera línea obtiene una transacción de usuario utilizando la manera 'JEE' por medio de JNDI. Observe que también podríamos decir:"
#. Tag: programlisting
#: Transactions.xml:182
@@ -608,7 +637,7 @@
"Then we create a new TreeCache and configure it using a PropertyConfigurator "
"class and a configuration XML file (see below for a list of all "
"configuration options)."
-msgstr ""
+msgstr "Luego creamos un nuevo TreeCache y lo configuramos utilizando una clase PropertyConfigurator y un archivo XML de configuración (a continuación puede ver una lista de todas las opciones de configuración). "
#. Tag: para
#: Transactions.xml:187
@@ -623,5 +652,5 @@
"exception in the methods (e.g. lock acquisition failed), or in the two-phase "
"commit protocol applying the modifications to all nodes in the cluster, the "
"transaction is rolled back."
-msgstr ""
+msgstr "Después iniciamos el caché. Luego iniciamos una transacción (y la asociamos con el hilo actual internamente). Cualquier método invocado en el caché sólo se recogerá y sólo se aplicará cuando se guarden los cambios de la transacción. En el caso anterior, creamos un nodo \"/classes/cs-101\" y añadimos dos elementos a su mapa. Asumiendo que el caché est á configurado para utilizar la replicación sincrónica, al guardar los cambios de la transacción, las modificaciones se replican. Si hay una excepción en los métodos (por ejemplo, la adquisición de un bloqueo falla) o en el protocolo de dos fases para guardar los cambios aplicando las modificaciones a todos los nodos en el clúster entonces la transacción se deshace. "
16 years, 2 months