Sunday 26 November 2017

0x04 In Binary Option


Si quería representar estados u opciones o algo similar usando banderas binarias para poder pasarlas y almacenarlas en un objeto como OPTION1 OPTION2 donde OPTION1 es 0001 y OPTION2 es 0010, de modo que lo que pasa es 0011, representando una mezcla de las opciones. ¿Cómo podría hacer esto en C Yo estaba pensando algo así Pero entonces, idealmente, doSomething sabe cómo interpretar la opción dada. Estoy en el camino correcto ¿Hay una mejor manera Y no tendría que definir una opción para cada combinación posible, tambiénIMPORTANTE ESTE SITIO NO ESTÁ MANTENIDO Configuración del servidor NetWare Los siguientes parámetros deben establecerse en los servidores NetWare en el C: NWSERVERSTARTUP. NCF archivo. La configuración de los parámetros en el archivo STARTUP. NCF asegura que los ajustes estarán en vigor después de reiniciar el servidor. Al configurar los parámetros SLP en un servidor, puede introducir los cambios a través del indicador de la consola o Monitor. Una vez hecho esto, ingrese exactamente los mismos cambios en el archivo STARTUP. NCF. Deberá reiniciar el servidor para activar los cambios realizados en el parámetro quotSLP Scope Listquot. Para activar cualquier otro cambio de configuración de SLP, sólo necesita quotresetar el SLP en el servidor. Esto se describe a continuación. Los siguientes 4 parámetros deben configurarse como se describe a continuación: Lista de Alcance de SLP Los servidores de NetWare utilizan el parámetro quotslp scope listquot para determinar con qué ámbito (s) SLP se registran los SAs de servidores. Dado que se utilizan DA en NCSU, este parámetro determina qué DAs registrarán los servidores SA. En NCSU, el parámetro SLP Scope List debe ajustarse a NCSU. Opciones de Descubrimiento de SLP DA Este parámetro controla la forma en que su servidor descubrirá DAs en la red. Es un ajuste binario concatenado compuesto de 4 bits. Como tal, los valores válidos son 0-15. Descubrimiento dinámico 0x02 (binario 0010) - Descubrimiento DHCP 0x04 (binario 0100) - Descubrimiento estático 0x08 (binario 1000) - Descubrimiento dinámico 0x02 (binario 0010) - Descubrimiento dinámico 0x04 Deshabilitar Descubrimiento dinámico IF Estático o DHCP configurado DA es válido En NCSU, debe especificar estáticamente los DA que su servidor usará en el archivo SLP. CFG (descrito a continuación). Debido a esto, usted no necesita utilizar descubrimiento dinámico o descubrimiento de DHCP. SLP DA Discovery Las opciones deben ajustarse a 12 (0x04 0x08). Esto significa que su servidor intentará utilizar las entradas estáticas en el archivo SLP. CFG. Si el servidor encuentra una DA válida del archivo SLP. CFG, se desactivará el descubrimiento dinámico y se reducirá el tráfico de red. SLP TCP Este parámetro determina si SLP intentará utilizar el protocolo TCP en lugar de UDP. Su servidor puede experimentar comunicaciones SLP más confiables es TCP se utiliza. Este parámetro debe estar en ON. SLP Tiempo de vida predeterminado Este parámetro determina la frecuencia con la que un SA intentará registrar su servicio. El valor predeterminado de este parámetro es 3600 segundos (1 hora). Se recomienda ajustar este parámetro a 43200 (12 horas). Aumentar este parámetro reducirá la cantidad de tráfico SLP generado por su servidor. Para agregar estos parámetros al archivo STARTUP. NCF: Desde la consola del servidor, escriba: Debería ver algo similar a este (las entradas preexistentes probablemente serán diferentes): Agregue las siguientes 4 líneas al final del archivo: SET SLP LISTA DE ESCALAS NCSU SET SLP DA OPCIONES DE DESCUBRIMIENTO 12 SET SLP TCP ON SET SLP SA DEFAULT LIFETIME 43200 El archivo debería tener el siguiente aspecto: Presione ltESCgt y seleccione quotYesquot para guardar el archivo. Pulse ltESCgt de nuevo y salga de la utilidad Edit (Nota: Reinicie el servidor después de editar el archivo STARTUP. NCF, no tendrá que ingresar ninguno de los comandos a través del indicador de la consola o de Monitor). Para establecer el parámetro de lista de ámbito SLP desde un indicador de consola de servidores: Escriba la siguiente línea en la consola de servidores SET SET SLP LISTA DE ESCALAS NCSU SET SLP DA OPCIONES DE DESCUBRIMIENTO 12 SET SLP TCP CONFIGURAR SLP SA DEFAULT VIDA 43200 Para configurar el parámetro de lista de alcance SLP desde la utilidad Monitor: Abra la utilidad Monitor escribiendo el monitor en la consola de servidores Pulse ltTABgt para Llevar los elementos del menú al primer plano Desplácese hasta la parte inferior del quotSeleccionar el menú Categoryquot list Seleccione quotServer Parámetrosquot y presione ltENTERgt Desplácese hasta el final de la quotSeleccione una lista de parámetros categoryquot Seleccione quotService Location Protocol y pulse ltENTERgt Busque los 4 parámetros descritos anteriormente y cambie Los ajustes sugeridos Con el fin de aprovechar al máximo los servicios del Agente de directorio SLP (DA) ofrecidos en el campus, debe configurar el archivo SYS: ETCSLP. CFG en cada servidor Netware. En este archivo, se especifican las direcciones IP de los DA en el campus. Esto permite a sus SA de los servidores saber con qué DA registrar sus servicios. Puede utilizar el enlace proporcionado a continuación para descargar un archivo SLP. CFG preconfigurado que puede utilizarse en sus servidores. Para usar este archivo, simplemente reemplace el archivo SYS: ETCSLP. CFG en sus servidores con éste: Si prefiere editar el archivo SLP. CFG manualmente, realice los pasos siguientes: En la consola del servidor, escriba Add the following 2 lines to Al final del archivo: DA IPV4, 152.1.3.98 DA IPV4, 152.1.3.99 El final del archivo debe tener el siguiente aspecto: Presione ltESCgt y seleccione quotYesquot para guardar el archivo. Pulse ltESCgt de nuevo y salga de la utilidad Edit. Restablecer SLP o reiniciar el servidor para que estos cambios surtan efecto. Activación de los cambios de configuración SLP (restablecimiento de SLP) El único parámetro SLP que requiere un reinicio del servidor si se cambia es quotSLP Scope Listquot. Todos los demás se activarán restableciendo SLP en el servidor. Para restablecer SLP en un servidor: En la consola del servidor, escriba el siguiente comando: SET SLP RESET ON También puede restablecer SLP mediante la utilidad Monitor. Para usar Monitor para restablecer SLP: Abra la utilidad Monitor escribiendo el monitor en el indicador de la consola del servidor. Pulse ltTABgt para llevar los elementos de menú al primer plano. Desplácese hacia abajo hasta el final del quotSeleccionar el menú Categoryquot list Seleccione quotServer Parametersquot y pulse ltENTERgt Desplácese al fondo De la quotSeleccione una lista de categorías de parámetros Seleccione quotService Location Protocol y pulse ltENTERgt Busque el elemento de menú denominado quotSLP Resetquot y presione ltENTERgt Comprobación de si un servidor está configurado correctamente para SLP Display Comando SLP Services Puede ingresar el siguiente comando en la consola del servidor para ver el Servicios SLP que el servidor conoce: DISPLAY SLP SERVICES (Nota: La palabra quotDISPLAYquot es opcional si está ejecutando Netware 6) Si tiene un servidor NW 5.1 SP3 o posterior y no ve la lista completa de servicios SLP al emitir El comando DISPLAY SLP SERVICES, emita estos dos comandos en la consola: SET SLP TCP EN SET SLP RESET ON Espera unos segundos y luego ejecuta el comando DISPLAY SLP SERVICES nuevamente. Debería ver toda la lista. Mostrar Comando SLP DA Puede ingresar el siguiente comando en la consola del servidor para ver los servidores del Agente de Directorio SLP que el servidor ha descubierto: Debería ver las direcciones IP de los servidores SLP DA: Ver NCSU Scope Container con ConsoleOne Una de las mejores características De Novell SLP DA arquitectura es que la configuración y la información de servicio se almacenan en NDS. Cuando sus SA de servidores registran sus servicios con éxito con una DA, se crean los objetos quotSLP Servicequot en NDS. Puede ver el contenedor en el que se almacenan estos objetos para ver si su servidor está configurado correctamente para anunciar sus servicios a través de SLP. Para usar ConsoleOne para ver si se han creado objetos de servicio SLP para los servicios de los servidores: Abrir ConsoleOne ConsoleOne está disponible a través del NAL en la carpeta quotAdmin Toolsquot ConsoleOne puede iniciarse desde la mayoría de servidores NetWare ejecutando SYS: PublicmgmtConsoleOne1.2binConsoleOne. exe Examine el NCSUNDS Árbol al siguiente contenedor SLP Scope Unit: Debería ver un gran número de objetos quotSLP ServicequotEl contenedor NCSU Scope Unit debería ser algo así: Si su servidor aparece en el contenedor NCSU Scope Unit, se está publicando a través de SLPTransactional FAQs ¿Cómo puedo Eliminar las filas en el editor pero no en el suscriptor Lo más fácil de hacer es poner su lógica de supresión en un procedimiento almacenado, añadir el proc almacenado como un artículo y marcarlo para que reproduzca la ejecución del proc almacenado, pero en el suscriptor quitar el Lógica que hace la instrucción delete. Algunos clientes modifican manualmente el proc del lado del suscriptor o lo añaden a un script postsnapshot para spaddpublication. Esto logra cosas par: 1. no llenar su distribución db con millones de registros innecesarios 2. no aumenta la latencia bloqueando otros comandos con los millones de cambios Simplemente nunca reinit ¿Cómo puedo encontrar información numérica sobre las transacciones que quedan por enviar Puede usar la vista quot msdistributionstatus en la base de datos de distribución o en el sistema almacenado proc quotspreplmonitorsubscriptionpendingcmds quot. Este último es utilizado por el mismo Replication Monitor. ¿Cómo puedo asegurar que las columnas de identidad se tratan correctamente para propósitos DR? Si selecciona el valor 0x04 en spaddarticle. Esto duplicará las columnas de identidad como columnas de identidad; esto se introdujo en SQL Server 2000 SP4. No está expuesto en SSMS (uno de mis bugbears quotfavouritequot es que todas las propiedades del artículo no están adecuadamente disponibles en la interfaz gráfica de usuario), pero puede establecerse en spaddarticle o spchangearticle. Tener la columna de identidad en el suscriptor es justo lo que usted quiere para una configuración de DR por lo que se puede utilizar después de la conmutación por error. Lo que también queremos es que los valores de identidad se incrementen normalmente en el suscriptor durante la sincronización, por lo que si hay un escenario de DR, no tenemos que laboriosamente utilizar DBCC CHECKIDENT después para reseed todas las columnas de identidad. Así que, cómo configurar esto Bueno, después de cambiar el valor de schemaoption como anteriormente, defina identityrangemanagementoption a manual en spaddarticle. Sin embargo, tenga en cuenta que en SQL Server 2005 la creación de la publicación transaccional con estos valores cambiará automáticamente la columna de identidad a NFR en la base de datos de publicación. Si se deja con esta configuración, también tendrá esta configuración en la instantánea y en el suscriptor. Esta configuración no permite permitir inserciones de identidad durante la sincronización; es para garantizar que la duplicación no incremente el valor de identidad que es lo contrario de lo que estamos apuntando. Cuando se trata de una conmutación por error, los insertos de replicación no han cambiado el valor de identidad y youll, a continuación, obtener errores de infracción PK al agregar filas en el suscriptor. Lo que debemos hacer es asegurarnos de que la configuración NFR no se transfiera a la instantánea. Theres una manera fácil de hacer esto - utilice la nueva función del sistema s ys. spidentitycolumnforreplication para reajustar el editor de nuevo a existente sin la configuración NFR. Esto debe hacerse en el editor ANTES de crear la instantánea. Después de que usted puede inicializar como normal. Una advertencia - después de configurar las cosas de esta manera, tener SSMS crear el script molesta extraña la identidad de la gestión de la opción que se establece en quotmanualquot por lo que el script necesita edición manual antes de ser ejecutado de nuevo. Cómo puedo escribir un script para mostrar qué comandos están esperando para ser descargados Para encontrar resúmenes numéricos, está la vista MSdistributionstatus y el procedimiento almacenado del sistema spreplmonitorsubscriptionpendingcmds. Para leer los comandos reales hay los spbrowsereplcmds de proc. Esto devolverá todos los comandos pero toma un parámetro opcional xactseqnostart. En la secuencia de comandos que aparece a continuación, muestro cómo se puede utilizar este parámetro para obtener comandos pendientes, una vez que se reemplacen los valores de los parámetros azules. Declare xactseqno varbinary (16) seleccione xactseqno max (xactseqno) de MSsubscriptions inner join MSpublications en MSpublications. publicationid MSsubscriptions. publicationid inner join MSdistributionhistory en MSdistributionhistory. agentid MSsubscriptions. agentid Donde subscriberdb testsub Y Publicación testtrans declara str varchar (255) set str master. Dbo. fnvarbintohexstr (xactseqno) set str izquierda (str, len (str) - 8) si existe (selecto objectid (tempdb..trancommands)) drop table trancommands create tabla trancommands (xactseqno varbinary (16) null, originatorsrvname sysname null, originatordb Null, null, comando nvarchar (1024) null, commandid int) insertar en trancommands exec spbrowsereplcmds xactseqnostart (null), null, comando nvarchar (1024) null, commandid int) Str select from trancommands donde xactseqno gt xactseqno ¿Por qué se genera una instantánea completa cuando se agrega un nuevo artículo a mi publicación en SQL 2005? Este es el comportamiento esperado si tiene una publicación de combinación o de combinación. Sin embargo, si tiene una publicación transaccional, siempre se generará una instantánea de todos los artículos si la propiedad de publicación immediatesync se establece en true. Normalmente, la propiedad de publicación immediatesync se establece en true si ha permitido suscripciones anónimas mientras creaba la publicación a través del asistente CreatePublication. Para evitar la instantánea completa, ejecute el script siguiente después de reemplazar los valores de los parámetros azules: EXEC spchangepublication publicación MainPub, propiedad Nallowanonymous, valor false GO EXEC spchangepublication publicación MainPub, propiedad Nimmediatesync, valor false GO Cuáles son los pros y los contras de reiniciar el lector de registro Agente A veces bajo carga extrema alta obtendrá deadlocking entre el agente de lector de registro y el agente de limpieza de la distribución. En este caso detener el agente de lector de registro para permitir que el agente de limpieza de la distribución haga su trabajo, aliviará el problema. Se recomienda que en este caso utilice un distribuidor remoto. También puede rebotar el agente de lector de registros cuando desea cambiar perfiles. Si detiene el agente lector de registro, la latencia obviamente aumentará y si se detiene durante un tiempo significativo, la edad de los comandos puede exceder el período de retención. Además, no se puede truncar el registro de transacciones a menos que el agente de lector de registros lo haya marcado como leído, lo que significa que el registro podría aumentar de tamaño. ¿Por qué mi agente de lector de registro de SQL 2000 ha fallado con el mensaje: No hay tal interfaz Debe volver a registrar su agente de lector de registros con reggsvr32 logread. exe. También puede tener que registrar todo el contenido de C: Program FilesMicrosoft SQL Server90Com. No todos mis lectores de registro se inician en SQL Server 2005 - ¿Qué puedo hacer? Aumente la configuración de maxworkerthreads en la tabla syssubsystems de la base de datos msdb. ¿Qué significa esto: error 14100: Especificar todos los artículos al suscribirse a una publicación mediante el procesamiento simultáneo de instantáneas Si agrega una tabla nueva a una publicación existente utilizando spaddarticle cuando intenta suscribirse a ese artículo recién agregado de una suscripción existente mediante spaddsubscription Puede obtener el error anterior. Esto se aplica cuando la publicación existente se configuró con la opción de instantánea simultánea y significa que no se pueden sincronizar suscripciones para dichas publicaciones sin una resincronización completa. Hay dos soluciones no oficiales: (a) puedes evitar el cheque especificando reserva interna cuando agregas la suscripción para el nuevo artículo y el agente de instantáneas debe generar una instantánea para el nuevo artículo después de eso y (b) puedes cambiar la propiedad immediatesync En syspublications a 0 (véase spchangepublication). Otras soluciones más oficiales incluyen cambiar el syncmethod de simultánea a una instantánea de base de datos (edición corporativa sólo en SQL Server 2005) o nativa (que bloquea la tabla durante la generación de la instantánea). Cambiar el syncmethod forzará una reinicialización de todas sus suscripciones en este punto. Alternativamente, podría crear otra publicación y utilizarla en su lugar. Tengo una configuración de la réplica que funciona bien en SQL Server 2000, pero ¿por qué es que cuando la misma configuración se utiliza en SQL Server 2005 obtiene sintaxis incorrecta cerca) El problema que encontró probablemente tiene que ver con un cambio de comportamiento predeterminado de SQL 2000 a SQL 2005 para replicar una columna de marca de tiempo como una marca de tiempo en lugar de binario (8) y el hecho de que la lógica de generación de procedimientos personalizados simplemente no puede manejar el caso en el que una columna de fecha y hora es parte de la clave primaria cuando se replica como una marca de tiempo . Dando unos pasos atrás para ver la situación a un nivel superior, la replicación transaccional simplemente no puede proporcionar ningún comportamiento razonable si una columna de marca de tiempo en una clave primaria se repite como una columna de sello de tiempo ya que los valores de sello de tiempo serán diferentes entre el editor y el suscriptor Y la replicación transaccional se basa en el supuesto de que los valores de clave primaria son los mismos en el editor y el suscriptor. Afortunadamente, puede solucionar el problema deshabilitando la opción de esquema 0x08 (o establecer la opción Convertir hora a opción binaria en true en la hoja de propiedades del artículo), esto básicamente le dará el mismo comportamiento que obtuvo de SQL 2000. ¿Por qué no puedo Truncar el registro de transacciones Después de restaurar una base de datos a otro servidor, cuando posteriormente intento encoger el registro obtengo el siguiente error: El registro no se trunco ​​porque los registros al principio del registro están pendientes de replicación Antes de truncar el registro, Sprepldone. En los casos en que esto no sea suficiente, puede que tenga que configurar esta base de datos como un editor de transacciones con una publicación ficticia antes de ejecutar sprepldone. A continuación, eliminar la publicación después. ¿Cómo puedo obtener información de replicación útil de DBCC OPENTRAN Esta es mi opinión sobre DBCC OPENTRAN. Si su lector de registro se mantiene al día con lo que está en el registro de transacciones, el LSN no distribuido más antiguo es (0: 0: 0): LSN más antiguo distribuido. (10: 384: 4) LSN no distribuido más antiguo. (0: 0: 0) Si no es capaz de mantener o está deshabilitado, la salida estará en el siguiente formato: LSN más antiguo distribuido. (10: 388: 4) LSN no distribuido más antiguo. (10: 390: 1) Si tiene una transacción abierta, el formato de la salida incluirá una sección en la parte superior: Transacción activa más antigua: SPID (ID de proceso del servidor). 55 UID (ID de usuario). 1 Nombre. Mytran LSN. (10: 391: 1) Hora de inicio. 16 de mayo de 2005 10: 10: 28: 920AM Información de transacción replicada: LSN distribuido más antiguo. (10: 388: 4) LSN no distribuido más antiguo. (10: 390: 1) Utilizando esto, puede utilizar DBCC INPUTBUFFER (55) para encontrar las transacciones abiertas TSQL y, a continuación, decide eliminarlo si es necesario. Los números entre paréntesis - (10: 388: 4) - son los números de secuencia del registro. Puede ejecutar quotselect desde. Fndblog (null, null) quot para echar un vistazo a la lista de estos, o para más detalles se pueden ver en LogExplorer. ¿Cómo puedo evitar este error en SQL Server 2000: infracción de la restricción de clave principal PKxxx. No se puede insertar clave duplicada en el objeto Es necesario aplicar un nuevo parche que se puede obtener aquí. Hay informes de que este paso por sí solo no es suficiente, y como un parámetro subscriptionseqno es en realidad tipo varbinary (16) y no varchar (16), necesita cambiar el tipo de datos de columna a varbinary (16), entonces funciona. ¿Cómo puedo particionar datos dinámicamente en SQL Server 2000 Para hacer esto usted puede usar una suscripción transformable. Las suscripciones transformables utilizan paquetes DTS para transformar los datos y se puede crear un paquete independiente para cada suscriptor. Al crear la publicación, asegúrese de seleccionar Mostrar opciones avanzadas y Sí, Transformar los datos. Una vez creada la publicación, cree un paquete DTS para realizar la transformación. Debido a una peculiar peculiaridad de Enterprise Manager, esta opción está disponible en la carpeta de publicaciones de la base de datos publicada, pero no en la carpeta Replication Monitor, Editores. Por lo tanto, haga clic con el botón derecho en la publicación y seleccione Definir la transformación de los datos publicados. En este asistente, se crea una consulta dirigida por datos. Asegúrese de que esta consulta utiliza VBScript y modifique la secuencia de comandos para filtrar las filas: si DTSSource (RegionID) 1 entonces Main DTSTransformStatOK else Principal DTSTransformStatSkipRow finalizar si ¿Qué ocurre cuando una transacción falla en el editor - todavía se ejecuta en el suscriptor

No comments:

Post a Comment