Le vote est la seule façon de mettre à jour les données d'application à partir d'une base de données?

dba.stackexchange https://dba.stackexchange.com/questions/1570

Question

Une application doit disposer de données plus que fraîchement mis à jour à partir d'une base de données que possible. Dans ce cas, est-il un autre moyen pour obtenir les données, en plus d'un chronomètre en fonction de la demande (vote) la base de données?

Je travaille avec un MS SQL Server 2008 (et les applications .NET + Entity Framework), mais je voudrais savoir obtenir d'autres types de bases de données ainsi.

Était-ce utile?

La solution

Service Broker pour 2005+ SQL Server peut le faire.

Désolé, je ne suis pas sûr d'autres SGBDR

Autres conseils

Dans Oracle vous pouvez utiliser le package intégré DBMS_ALERT pour faciliter ce processus.

  

DBMS_ALERT supporte asynchrone   notification des événements de base de données   (alertes). Par l'utilisation appropriée de cette   déclencheurs du paquet et la base de donnée, un   application peut notifier lui-même chaque fois   Les valeurs d'intérêt à la base de données sont   changé.

     

Supposons qu'un outil graphique est   afficher un graphique de certaines données à partir d'un   table de base de données. L'outil graphique peut,   après avoir lu les données et de graphiques,   attendre une alerte de base de données (WaitOne)   couvrant les données de lire. L'outil   se réveille automatiquement lorsque les données   est modifié par tout autre utilisateur. Tout ça   est nécessaire est qu'un déclencheur soit   placé sur la table de base de données,   effectue un signal (SIGNAL) chaque fois que   le déclencheur est tiré.

Base de données Certains fournisseurs offrent également des bus de messages intégrés que votre application peut simplement vous abonner à:

Une alternative serait d'acheminer les données dans la base de données en premier lieu par l'intermédiaire d'un bus de message comme Tibco / RV et simplement « branche » il, le flux entrant dans la DB et celui qui va à votre application, ou utiliser une couche de mise en cache comme Coherence entre votre application et la DB.

LISTEN / NOTIFY pour PostgreSQL

http://www.postgresql.org/docs/current/ statique / SQL-notify.html

dans la base de données ...

NOTIFY static_channel_name, 'static-message';

ou dans une fonction / déclenchement:

perform pg_notify('dynamic-channel-name', 'dynamic-message');

dans la base de données client:

LISTEN some_channel_name; --note the lack of quotes

Le LISTEN client recevra l'ID de processus PostgreSQL, nom de la chaîne, et la valeur de message.

Le pilote standard JDBC pour PostgreSQL ne pas comme les notifications, mais vous pouvez utiliser le https: // github .com / impossibl / pgjdbc-ng pilote à cette fin

Pour une de nos applications (accès creux Chrome et Chrome seulement), nous utilisons MySQL avec sys_exec UDF . Au fond, pourquoi Chrome -. Grâce à l'appui WebSocket

Une fois une mise à jour / insertion / suppression se produit critique, un programme externe est appelé creux fonctionnalité sys_exec nouvellement ajoutée incorporée dans certains déclencheurs. À ce moment-là, nous avons tout ce que nous devons transmettre le message à chaque client connecté sans avoir besoin d'interrogation ou plusieurs requêtes que tout se passe en temps réel.

Nous utilisons une combinaison d'Oracle GoldenGate et l'API JPA (Java Persistence) de le faire avec la base de données Oracle, mais aussi avec DB2, Sybase, Microsoft SQL Server, MySQL, Teradata, etc. La fonction est décrite ici: http://docs.oracle.com/middleware/1212/coherence/COHIG/golden_g .htm

Qu'est-ce que GoldenGate est fait tourner le journal des transactions de base de données dans un flux d'événements filtrables qui peut être consommé partout à travers le réseau. Nous l'utilisons pour transformer les transactions pertinentes en soit mises à jour du cache ou invalidations de cache, les deux qui peuvent déclencher des événements au niveau de l'application, par exemple poussant les données tout le chemin vers le bureau ou HTML5 applications websocket.

(divulgation complète, je travaille au sein d'Oracle sur l'un des produits en utilisant GoldenGate.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top