Bienvenido a las notas del release de DB2 Everyplace Versión
8.1.4. El nuevo Centro de información de DB2 Everyplace
para la Versión 8.1.4 se encuentra disponible en el directorio
%DSYINSTDIR%\doc\leng\infocenter.
Estas notas del release contienen información sobre nuevas características,
mejoras y procedimientos actualizados en el release de la Versión
8.1.4 de DB2 Everyplace.
La siguiente sección comienza con una lista de características seguida de
arreglos recientes para la base de datos de DB2 Everyplace.
Nuevas características para el motor de base de datos
- Soporte ADO.Net para las plataformas PocketPC y Windows
- DB2 Everyplace tiene dos nuevas funciones escalares definidas por el
sistema que permiten realizar una consulta de SQL independientemente de si los
datos que esté consultando están en mayúsculas o minúsculas. Estas
nuevas funciones son LCASE() y UCASE().
- Ahora podrá tener varias conexiones múltiples a diferentes bases de datos
dentro del mismo proceso.
- Soporte Auto-increment (columna Identidad)
- Recuperación gradual de grandes cantidades de datos por medio de CLI
- Soporte para Symbian OS Versión 7
- Soporte de procedimiento almacenado remoto en Symbian OS Versiones 6 y 7,
y su soporte de JDBC
- Soporte para tipos de procesador adicional en plataformas Neutrino y Linux
- Más soporte de JDBC, así como compatibilidad JSR 169
- Soporte adicional de CLI incluyendo: SQLColumns, SQLGetConnectAttr,
SQLGetInfo, SQLGetStmtAttr, SQLNumParams, SQLSetConnectAttr, SQLSetStmtAttr y
SQLTables.
- Soporte para el cifrado de datos local en todas las plataformas,
incluyendo Neutrino, Linux, Symbian OS 6 y OS 7.
Arreglos para el motor de base de datos
Problemas solucionados en DB2 Everyplace Versión 8.1, FixPak 1,
FixPak 2 y Versión 8.1.4, con un número de APAR para que lo
consulte si es aplicable:
- (APAR IC34759) Problemas de cifrado de datos:
- Si una aplicación accede a más de 8 tablas (una de las cuales es una tabla
cifrada) durante una única sesión de conexión, DB2 Everyplace falla.
- Las consultas de selección utilizando el cursor desplazable en tablas
cifradas fallan.
- Las consultas GROUPBY (con columnas de agrupación) en tablas cifradas
fallan.
- Las consultas de actualización fallan en columnas de tablas cifradas con
índices.
- (APAR IC34782) El motor de base de datos de DB2 Everyplace termina
anormalmente cuando se utiliza el predicado LIKE con un marcador de parámetro
cuando hay un índice en la columna (por ejemplo C1 LIKE ?).
Puede que la estructura de índice se dañe debido a una sentencia de
actualización. La anomalía se produce cuando hay más de 1 índice en la
tabla y un valor SET no cambia el valor original de la fila. Si se
cambia el valor de la columna, este problema no se produce.
- (APAR IC35328) Las tablas en el motor de DB2 Everyplace son inaccesibles
mientras se utiliza la sentencia DELETE, cuando se producen las siguientes
acciones:
- realización de una supresión física
- lectura de registros suprimidos lógicamente
- no se utiliza ninguna cláusula WHERE con la sentencia DELETE
- (APAR IC35106) Volver a ejecutar una sentencia SELECT preparada utilizando
un cursor desplazable no devuelve ninguna fila.
- (APAR IC35043) En Palm OS, si tiene la biblioteca PVCPKCS11.prc
instalada y pulsa repetidamente el botón de Encendido/Apagado, el dispositivo
visualizará finalmente una alerta del sistema y solicitará que se
restablezca.
- (APAR IC35585) Se puede producir una corrupción del índice en Palm OS con
el mensaje de error SQLSTATE=58004 al realizar operaciones de actualización y
supresión cuando se crea el índice en columnas con números de columna de uno
de los siguientes grupos: 17-32, 48-64, 80-96, 112-128, 144-160,
176-192, 208-226, 240-256.
- (ARAR IC35710) Cuando se crea una aplicación Visual Basic de DB2
Everyplace utilizando el archivo db2ecli.bas para la
plataforma Pocket PC, la aplicación se cuelga cuando se ejecuta en el emulador
de Pocket PC 2002.
- (APAR IC35966) Problema de llamada de procedimiento almacenado remoto en
Palm. Se produce un error muy grave cuando se utiliza
SQLBindParameter que contiene SQL_PARAM_OUTPUT, y al adquirir el
ResultSet.
- (APAR IC36026) La ejecución de una sentencia preparada de una consulta
SELECT con función agregada sin una cláusula GROUPBY devuelve una respuesta
incorrecta.
- (APAR IC36027) Una sentencia DELETE que se ha encontrado (con una cláusula
WHERE) no consigue eliminar todas las filas calificadas cuando se utiliza un
índice en una columna TIMESTAMP en la búsqueda de filas calificadas.
- (APAR IC36083) Las sentencias CREATE TABLE y CREATE INDEX causan una
anomalía, si crea un índice o una clave primaria en columnas con un número de
columna que es mayor o igual a 128.
- (APAR IC36069) Si se crea un índice en una posición de columna que exceda
256, puede que los datos se dañen o que se devuelva SQLSTATE 58004.
Este arreglo también evita que se creen tablas con más de 256 columnas.
- (APAR IC36070) La sentencia REORG ejecutada contra una tabla con registros
de tamaño de variable (por ejemplo, VARCHAR o BLOB) puede llevar a un daño
impredecible de archivos de datos o a una anomalía de aplicación. Esta
situación se producirá muy probablemente cuando el tamaño de los registros se
aumente por la ejecución de la sentencia UPDATE.
- (APAR IC36256) Las aplicaciones de ejemplo de DB2 Everyplace no se pueden
crear satisfactoriamente con Microsoft eMbedded Visual C++ 3.0.
- (APAR IC36270) DB2 Everyplace no optimiza algunas consultas ORDER BY
porque no consigue elegir índices disponibles.
- (APAR IC37280) El motor de base de datos de DB2 Everyplace termina
anormalmente cuando una aplicación intenta conectar con una base de datos que
contiene una tabla DB2eSYSUSERS vacía. El mismo comportamiento se
produce cuando una aplicación intenta establecer una conexión de base de datos
y proporciona una contraseña incorrecta inmediatamente después de crear el
primer ID de usuario.
- (APAR IC36430) Puede que DB2 Everyplace termine anormalmente durante la
ejecución de una consulta GROUP BY cuando el número de elementos SELECT excede
el número de elementos GROUP BY.
- (APAR IC36695) Un intento de conexión con una base de datos cifrada hace
que el motor de base de datos de DB2 Everyplace finalice anormalmente.
- (APAR IC36570) El motor de base de datos de DB2 Everyplace devuelve
SQLState 57011 o 58004 al intentar acceder a una base de datos que está
almacenada en un soporte externo (por ejemplo, tarjeta SD, tarjeta
CompactFlash e IBM Microdrive) en un dispositivo PalmOS.
- (APAR IC36688) El motor de base de datos de DB2 Everyplace devuelve
SQLState 58004 al unir dos tablas con una condición de unión que implica
columnas VARCHAR que contienen series vacías (cuando se está utilizando un
índice para captar datos).
- (APAR IC36702) DB2 Everyplace no empareja el predicado "LIKE
'%'" con una serie vacía.
- (APAR IC37281) Puede que SampleCLP de DB2 Everyplace devuelva un error o
datos no válidos al importar una columna VARCHAR/CHAR que acaba con
comillas.
- (APAR IC37045) DB2 Everyplace no devuelve el Estado de SQL 23505 cuando la
aplicación inserta dos números decimales en una columna de clave primaria
cuyos valores son ligeramente diferentes. DB2 Everyplace los acepta
erróneamente como los mismos valores.
- (APAR IC37046) DB2 Everyplace devuelve un error de sintaxis para el
operador '||' de concatenación de series.
- (APAR IC37048) DB2 Everyplace no acepta caracteres de chino tradicional en
el dispositivo Acer S60 con Palm Chinese OS.
- (APAR IC37329) Cuando se ejecuta una sentencia UPDATE de SQL que utiliza
el índice de clave primaria, seguida de una sentencia DELETE de SQL que
utiliza el índice de bits de indicación, las siguientes consultas en el motor
de base de datos de DB2 Everyplace devolverán resultados incorrectos.
La siguiente sección comienza con una lista de características seguida de
arreglos recientes para DB2 Everyplace Sync Client.
Nuevas características para DB2 Everyplace Sync Client
- Nueva GUI para IBM Sync que se beneficia de las siguientes características
nuevas y es más fácil de utilizar:
- Directorio de destino configurable en el cliente para cada suscripción
- Tamaño de mensaje del cliente de sincronización configurable basado en la
velocidad de red
- Soporte de proxy de servidor
- Vía de acceso de servlet configurable
- Sincronizar datos utilizando el nuevo DB2 Everyplace Cloudscape Sync
Client
- Soporte de sincronización para .NET utilizando el proveedor
ISync.NET de DB2 Everyplace
- Tiempo de espera configurable en todas las plataformas de cliente
- Soporte SSL:
- Sólo para entornos de WebSphere Everyplace Access, Versión
4.3: soporte SSL en Palm OS, Win32 y WinCE (sólo Pocket PC 2002)
y Linux.
Para utilizar SSL en IBM Sync: en el panel Valores de servidor de la
GUI de IBM Sync, especifique el protocolo HTTPS en el URL (Uniform Resource
Locator) de servidor. Si el puerto SSL configurado no es el valor por
omisión, (443), proporcione también el puerto SSL. Para configurar el
servidor de sincronización para SSL, consulte la documentación apropiada de
WebSphere Everyplace Access.
Desarrollo de aplicaciones que utilizan SSL: se ha creado una nueva
API de C (iscServiceOpenEx) del cliente de sincronización para desarrollar
aplicaciones con soporte SSL.
- Nuevos dispositivos de cliente soportados:
- Symbian 7 (Sony Ericsson P800)
- Linux (Sharp Zaurus SL 5500 y SL 5600)
- Palm OS Versión 5.0
- Soporte para el sistema operativo Linux en procesadores Power PC, Strong
ARM y XScale (sólo disponible en la edición SDK de DB2 Everyplace)
- El directorio de destino (almacenamiento secundario) está generalmente
disponible desde la aplicación IBM Sync, y se puede especificar desde el panel
Valores de cliente.
- API del cliente de sincronización para Java
Los desarrolladores de aplicaciones Java ahora pueden utilizar la API de
Java del cliente de sincronización (paquete isync4j) para realizar
sincronización de datos. Hay disponibles dos proveedores de
sincronización nativa. Un proveedor de sincronización utiliza JNI para
invocar las bibliotecas nativas del cliente de sincronización para realizar la
sincronización. El otro proveedor sólo se utiliza para J9 VM para
PalmOS. Consulte la publicación Guía de desarrollo de aplicaciones
de DB2 Everyplace y isync4j Javadoc para obtener información
adicional.
- API del cliente de sincronización para C
IBM Sync Client API ha sufrido cambios y proporciona más claridad,
flexibilidad y nueva funcionalidad. IBM Sync Client API
v.7.2.1 todavía está soportada con un reiniciador de API,
pero las nuevas características sólo son accesibles mediante la utilización de
la nueva API.
- Sincronización para dispositivos MIDP
Esta característica sólo se incluye ahora en DB2 Everyplace SDK
Edition. Crea un nuevo cliente de sincronización de J2ME MIDP para dar
soporte a la creación de aplicaciones para J2ME MIDP que puedan sincronizar
suscripciones con el sistema de archivos MIDP para que lo utilice la
aplicación. Explota el sistema de gestión de registros de J2ME MIDP en
lugar de DB2 Everyplace (que no puede ejecutarse en J2ME MIDP).
Arreglos para DB2 Everyplace Sync Client
Problemas solucionados en DB2 Everyplace Versión 8.1, FixPak 1,
FixPak 2 y Versión 8.1.4, con un número de APAR para que lo
consulte si es aplicable:
- (APAR IC35552) En Palm OS utilizando cifrado local con la API de
sincronización de Java, el escenario es el siguiente:
- Sincronizar.
- Entrar el ID de usuario y la contraseña, dando como resultado una
sincronización satisfactoria.
- Intentar consultar una tabla y recibir el mensaje de error SQLSTATE42501
"ID de autorización no permitido para realizar la operación especificada en el
objeto identificado".
- (APAR IC35910) Los archivos de la API de sincronización de Java
(isync4j.jar) y del proxy de agente
(dsyagent.dll) no se pueden encontrar en los archivos CAB de
instalación de WinCE.
- (APAR IC35980) Comportamiento atípico del cliente de sincronización que el
cliente devuelve "La sincronización ha finalizado satisfactoriamente" pero en
realidad no se han sincronizado suscripciones.
- (APAR IC36166) Se recibe el siguiente error del cliente de sincronización
"dsyc699e Error de red desconocido" al intentar sincronizar con Pocket PC y
una tarjeta Sprint Wireless PCMCIA. Este problema no se produce en la
tarjeta Verizon Wireless.
- (APAR IC36206) Existe un problema durante el proceso de autentificación de
Palm. IBM Sync deja de funcionar correctamente si se entra
incorrectamente 3 veces una contraseña de usuario o si el botón Cancelar se
pulsa en la ventana "Autentificación de DB2e". Los siguientes intentos
de sincronización fallarán con el error "DSYC698I: Error interno
SQLstate".
- (APAR IC36408) Al utilizar la versión en chino tradicional de IBM Sync en
dispositivos WinCE, hay caracteres corruptos en el panel de información de
suscripción detallada y en el panel para entrar el ID de usuario y la
contraseña para las tablas cifradas. Este problema sólo se produce en
la interfaz de usuario y no afecta a la sincronización.
- (APAR IC36410) En dispositivos Palm, la versión alemana del programa IBM
Sync encuentra un error muy grave durante la sincronización y aparece una
ventana de alerta con el mensaje "Excepción muy grave" que le solicita
restablecer el sistema. Este problema sólo se produce en la versión
alemana.
- (APAR IC36413) Tras la sincronización, si se eliminan suscripciones del
Centro de administración de dispositivos portátiles, el cliente tiene
problemas actualizando la configuración en la siguiente sincronización.
El cliente todavía intentará sincronizar esas suscripciones que se van a
eliminar.
- (APAR IC36412) Al utilizar el programa de ejemplo de Java (ISyncSample) en
dispositivos Palm, la sincronización de tablas hace que el dispositivo termine
anormalmente. En el emulador de Palm, se mostrará una excepción de
desbordamiento de pila.
- (APAR IC36574) Cuando se sincroniza una tabla cuya clave primaria se
compone de todas las columnas, si cancela la sincronización y, a continuación,
vuelve a sincronizar, el cliente de sincronización podría notificar un
SQLstate 23505.
- (APAR IC36685) Cuando el cliente de sincronización está sincronizando una
suscripción de archivo, si falla, no intentará volver a sincronizar la
suscripción de archivo durante sincronizaciones futuras hasta que la
suscripción de archivo (o el usuario) se restablezca en MDAC.
-
- (APAR IC26366) Según las especificaciones actuales de la API, DB2
Everyplace tiene un límite de longitud de 18 caracteres en la contraseña de
base de datos, el cliente de sincronización también asigna un almacenamiento
de 18 caracteres para que la aplicación pase en la contraseña. Por lo
tanto, si la aplicación desborda el almacenamiento preasignado con una
contraseña de más de 18 caracteres, causará una terminación anormal en el
cliente de sincronización. Este límite se aplica a todas las
plataformas.
- (APAR IC37573) Este problema se produce cuando se desarrolla una
aplicación del cliente de sincronización para Palm OS utilizando la API del
cliente de sincronización. Con cada llamada a cualquiera de las
funciones de API de DB2 Everyplace Sync Client, iscEngineSync o
iscEngineSyncConfig, el cliente establece (o marca) la conexión RAS al
principio de la sincronización y luego concluye la conexión cuando la
sincronización finaliza. Así, en caso de llamadas consecutivas a esas
dos funciones de API, se ve al cliente de sincronización estableciendo y
volviendo a establecer la conexión RAS varias veces.
- (APAR IC37580) Al sincronizar desde un dispositivo Handspring Treo
mediante el teléfono inalámbrico, el cliente de sincronización notifica un
error de anomalía de conexión.
La siguiente sección describe los componentes que se proporcionan en DB2
Everyplace SDK Edition.
El SDK es un paquete con la base de datos de DB2 Everyplace con licencia de
evaluación, Mobile Application Builder, herramientas y tecnologías adicionales
de desarrollo de DB2 Everyplace, y documentación utilizada para desarrollar
aplicaciones de DB2 Everyplace.
- DB2 Everyplace Mobile Application Builder (MAB)
Consulte las notas del release que se proporcionan con MAB
8.1.4 para obtener información detallada sobre arreglos y
características de MAB para la Versión 8.1.4.
Mobile Application Builder (MAB) es una herramienta de desarrollo de
aplicaciones rápido (RAD) que permite crear complejas aplicaciones de base de
datos relacional de DB2 Everyplace sin la necesidad de tener experiencia en
programación o conocimientos específicos sobre atributos del dispositivo de
destino. MAB genera aplicaciones "thick client" (cliente complejo) que
se producen en un lenguaje de programación que permite una complejidad y
utilización de la lógica superiores a las de las aplicaciones que utilizan
lenguajes de marcación inalámbrica. Normalmente, las aplicaciones
pueden funcionar con una conexión o sincronización ocasional, y los datos
críticos residen localmente en el dispositivo. MAB genera código de
lenguaje C para dispositivos portátiles que utilizan PalmOS, y código Java
para dispositivos que dan soporte a una máquina virtual de Java (Java(TM)
Virtual Machine), incluyendo los basados en WinCE/PocketPC (como los
dispositivos Compaq iPAQ StrongARM), Symbian OS V6 (como Nokia Communicator
92XX series), Symbian OS V7 (como Sony Ericsson P800), y Embedded Linux (como
Sharp Zaurus 5500/5600).
- Plugin de DB2 Everyplace para IBM Websphere Studio Device Developer
(WSDD) y otras herramientas de desarrollo basadas en Eclipse
El plugin de IBM DB2 Everyplace para Websphere Studio permite a los
desarrolladores crear sofisticadas aplicaciones Java J2ME que utilizan
tecnología de base de datos relacional y de sincronización de DB2
Everyplace.
El plugin da soporte a aquellas plataformas de dispositivo de destino,
soportadas en WSDD, que tienen como destino los dispositivos soportados por
J2ME y que también están soportados por la base de datos de DB2
Everyplace. El plugin tiene soporte ampliado para aplicaciones
desarrolladas para dispositivos basados en las plataformas PalmOS y PocketPC,
incluyendo el paquete en tiempo de ejecución de IBM J9 Java Virtual
Machine.
Aunque el plugin está diseñado para poderse utilizar en cualquier
herramienta de Integrated Development Environment basada en Eclipse, tiene una
función especialmente útil cuando se utiliza dentro de WSDD.
La versión 1.0.1 del plugin se incluye con este SDK.
Si está utilizando WSDD 5.0, utilice la versión 1.0.0 del
plugin de DB2 Everyplace. La versión 1.0.0 del plugin de
DB2 Everyplace está disponible como descarga en el sitio Web de WSDD.
En la página de la descarga, seleccione 5.0 y descargas
relacionadas (5.0 and related downloads) para llegar al plugin
correcto de WSDD de DB2 Everyplace. Si utiliza WSDD 5.5, utilice
la versión 1.0.1 del plugin de DB2 Everyplace.
- Plugin de DB2 Everyplace para AppForge MobileVB(TM)
Con este plugin, los desarrolladores de Microsoft Visual Basic pueden
programar aplicaciones de DB2 Everyplace utilizando AppForge's
MobileVB(TM). Los programadores de Visual Basic que utilizan MobileVB
pueden ahora desarrollar fácilmente aplicaciones de dispositivos portátiles
que utilizan tecnología de base de datos relacional y de sincronización de DB2
Everyplace. Las plataformas portátiles soportadas son dispositivos
basados en PalmOS, Nokia 9200 Communicator (SymbianOS) o dispositivos basados
en WinCE/PocketPC.
Arreglos para la versión 8.1.2: en
aplicaciones WinCE desarrolladas utilizando la versión 8.1 del plugin
de DB2 Everyplace para AppForge MobileVB(TM), la sincronización no ha sido
satisfactoria. Esto se arregló en la versión
8.1.2.
- Desarrollo de aplicaciones utilizando JSP (Java Server Pages)
Se incluyen las herramientas JSP para utilizar páginas JSP dirigidas por
base de datos creadas con WebSphere Studio Java Beans. Las páginas JSP
de WebSphere Studio se analizan mediante una pequeña herramienta que, a
continuación, permite examinar las páginas en un dispositivo portátil con
datos proporcionados desde la base de datos local de DB2 Everyplace en un
entorno no conectado.
Nuevas características para la versión 8.1.2:
- Nuevo soporte JSP para Symbian OS Versión 6. Soporte para
aplicaciones JSP de DB2 Everyplace desarrolladas utilizando WebSphere Studio
Application Developer Versión 5.0.
Nuevas características para la versión 8.1.4:
- Soporte para aplicaciones JSP de DB2 Everyplace desarrolladas utilizando
WebSphere Studio Application Developer Versión 5.0.
- Ejecuciones de IBM J9 Java(TM) Virtual Machine para plataformas de
dispositivos Pocket PC, Palm (68 K) y Linux (Monta Vista)
Consulte el archivo readme en el directorio \SDK\J9 para obtener
información detallada.
- Documentación adicional de desarrollo de aplicaciones
Se incluyen publicaciones adicionales y white papers para ayudarle a
utilizar DB2 Everyplace y a desarrollar aplicaciones.
- El directorio \Samples contiene aplicaciones adicionales de
ejemplo de DB2 Everyplace no incluidas con los otros componentes de DB2
Everyplace.
- El directorio \Tutorials contiene guías de aprendizaje paso a
paso para utilizar DB2 Everyplace.
Esta sección contiene una lista de consideraciones y restricciones
conocidas que se aplican a este release de DB2 Everyplace:
- Los usuarios de la base de datos cliente de DB2 Everyplace pueden
experimentar una degradación de rendimiento en modalidad de confirmación
automática para sentencias UPDATE, INSERT o DELETE. Una solución
temporal para este problema es utilizar explícitamente la transacción manual y
agrupar varios cambios en una única operación de confirmación.
- Para Ado.NET en el motor de base de datos:
- La recuperación del conjunto de resultados utilizando una llamada de
procedimiento almacenado remoto tiene una limitación sobre el tamaño del
conjunto de resultados. Esta restricción se eliminará en un futuro
release.
- Para los métodos o propiedades que no estén soportadas, se emitirá una
"System.NotSupportedException".
- Cuando el cliente de sincronización está sincronizando con varias bases de
datos de destino, el cifrado de base de datos local no está soportado cuando
más de una base de datos contiene tablas cifradas.
- El cliente de Cloudscape no da soporte a todas las características a las
que el cliente de DB2 Everyplace da soporte. Por ejemplo, no se da
soporte a servidores múltiples, ordenación de conjuntos de
suscripción/suscripciones/tablas y cifrado de datos locales.
- La característica Filtrado de unión no da soporte a múltiples consultas de
tabla. Si una cláusula WHERE de usuario contiene múltiples consultas de
tabla, la característica Filtrado de unión se inhabilita para esa cláusula
WHERE y se registra el aviso DSYD029W. La cláusula WHERE continúa
trabajando sin la característica Filtrado de unión.
- La integridad de referencia no está soportada para suscripciones de tabla
DataPropagator.
- Para las suscripciones de tabla DataPropagator, la duplicación siempre se
debe ejecutar en el servidor de bases de datos de réplica. Esto
significa que si es necesario realizar la duplicación durante acciones de
administración, el Centro de administración de dispositivos portátiles se debe
ejecutar en el servidor de bases de datos de réplica.
- No se da soporte a los nombres de objeto de base de datos que se deben
encerrar entre comillas dobles.
- En general, el tamaño máximo de una fila en una tabla está limitado por la
fuente de datos. Añadir la tabla a una suscripción JDBC restringe aún
más el tamaño máximo de fila. La restricción adicional en el tamaño
máximo de fila es aproximadamente 125 bytes.
- En general, el tamaño máximo de una fila en una tabla está limitado por la
fuente de datos. Añadir la tabla a una suscripción JDBC restringe aún
más el tamaño máximo de fila. La restricción adicional en el tamaño
máximo de fila es aproximadamente 2KB.
Los siguientes términos son marcas registradas de International Business
Machines Corporation en los Estados Unidos y/o en otros países:
AIX
DB2
DB2 Universal Database
IBM
Microsoft, Windows, Windows NT y el logotipo de Windows son marcas
registradas de Microsoft Corporation en los Estados Unidos y/o en otros
países.
Otros nombres de empresas, productos o servicios pueden ser marcas
registradas o de servicio de terceros.