New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
User:Fahadinfy - Wikipedia, the free encyclopedia

User:Fahadinfy

From Wikipedia, the free encyclopedia

Group Notifier Support Guide



Version 0.2


Feb 2007






Need To Know Confidential
Apple Computer, Inc. 2006




Documentation Information

Document Name: GroupNotifierSupportGuide.doc
Version: 0.2
Last Updated: Mar 09, 2007


Document History

Date Version. Revision Modified By Comments
Feb 02, 2007 0.1 IS-APS Support Group Initial Version
Mar 09, 2007 0.2 IS-APS Support Group Procedure and Process info added


Contents

[edit] Application Overview

[edit] Introduction

This document will serve as complete support guide for Group Notifier

Apple provides several features for .Mac users, some of which are Mail, Groups, iDisk, Photocasting, iWeb, etc. .Mac Groups allows users to Create a private password-protected website for group images, message boards, announcements, calendars, member list, links to other websites of interest.

When a group is created, information about the group such as Owner, Members, Privileges, etc… will be stored in the database. Group Notifier is an application to resolve group mail ids to get individual ids and helps to keep information about the groups up to date.


[edit] Working

.Mac allows users to create Groups and manage them for features such as group mails, message boards, calendars, etc. Information about the Different groups are stored in IDP2 database in the table ID_GROUP_MEMBERSHIP. IDP2 is the transactional database where all the transactions related to the group happens. COMPASS is subset of the main database where all the changed information about the groups are stored. ID_GROUPS_DATA is the table where all the information are stored. GCACHE is cache host in the mailing system. GroupNotifier is an application that helps to maintain the group membership information.

Whenever the group membership information is changed, it is updated in the IDP2 database in ID_GROUP_MEMBERSHIP table. Group Notifier processes scan the changes in ID_GROUP_MEMBERSHIP table in IDP2 database and communicate the changes to ID_GROUP_DATA table in COMPASS database.

GroupNotifier is a C program, which forks several SyncDs and a workerD. SyncD’s scan ID_GROUP_TO_COMPASS table for changes and push the changes to id_group_data table in compass database. WorkerD scans id_group_data for changes and send XXPIRE Message to the GCache proxy Servers. Through this the changes are communicated to GCACHE, which refreshes itself from the Compass database.


[edit] Architecture

Image:IS-APS Support-Group-Notifier Architecture.jpg

Image:IS APS Support-Group-Notifier Compass DataFlow.jpg

[edit] Technical architecture

[edit] Directory Structure

Image:IS-APS Support-Group-Notifier structure.jpg


1.Bin: The bin directory contains the executables and scripts to start/stop/ Group Notifier application.

  • run.ksh: script to start/stop groupNotifierCtl Exe.
  • groupNotifierCtl: GroupNotifierCtl Exe file.

2.Conf: This directory contains configuration files used to configure groupNotifierCtl application

  • groupNotifierCtl.conf: Contains configuration parameters which can be set to modify the behavior of the application

Sample Conf file: <br> ###0 is stop ; 1= start; 2=pause; 3=stopnow; RunControlFlag=1 ### 0: Info, 1: Warning, 2: Debug, 3: Detail LoggingLevel="1" ### Sysadmins to be paged/emailed about status SysAdmins="pai@apple.com,ramesh@apple.com,isdevl2@group.apple.com" ### min 1, max 1 NumberOfNotifiers=10 ### CacheDHost #CacheDHost = gcache01 CacheDHost = gcache02 ### CacheDPort CacheDPort=8888

3. Install: This directory contains files to install Group Notifier

  • install.ksh: Script to install the groupNotifier
  • groupNotifierCtl.ksh.tmpl: Template for GroupNotifierCtl file
  • groupNotifierCtl.conf.tmpl: Template for GroupNotifierCtl config file

4. logs: The log directory contains the logs of the Group Notifier Application

  • groupNotifierCtl.log: This file contains log entry if groupNotifierCtl has been started now or already running
  • groupNotifierCtl.pid: This file contain the pid of the last started groupNotifier.

[edit] Scripts/Programs

[edit] Install.ksh

Script to install the GroupNotifier Application. It has the following information set for various environment.

  • SET_ORACONNECTSTRING
  • SET_COMPASS_ORACONNECTSTRING
  • SET_RUN_ENVIRONMENT
  • SET_EMAIL_ADDRESS
  • SET_NUMBER_OF_NOTIFIERS
  • SET_DOMAIN
  • SET_LOGGING_LEVEL
  • SET_CACHED_HOST
  • SET_CACHED_PORT

[edit] groupNotifierCtl

GroupNotifierCtl is final exe created by compiling the C and Pro*C Scripts. This executable is invoked using the groupNotifierCtl.ksh program. The exe spawns several SyncDs and a workerD, which communicates with IDP2 database and notificy the changes to GCACHE and the compass database and update in ID_GROUP_DATA table

[edit] groupNotifierCtl.ksh

This is a Script is invoked to start/stop groupNotifierCtl exe.

[edit] groupNotifierCtl.pc

This Pro*C script is the actual script which spawns the SyncD and WorkerD to do notifier function. This script compares the data from the id_group_membership table and Notify Compass database about the Changes.

The procedure, stopGroupsToCompassSyncD allows groupNotifier to stop changes to be made in Compass database. The Procedure, notifyAdmins notifies the admin about the state of the groupnotifier control.

[edit] notifyWorkerD.pc

NotifyWorkerD is the part of the groupNotifier Process, which gets groups to be expired from Oracle queue and using the xexpire process. This script connects To DB and then to cache proxy through socket for notifying the database.

notifyWorkerD is the main procedure, which notifies the changes to compass by invoking various sub procedures such as connectToProxy, readFromProxy and writeToProxy to Connect To cache proxy through socket, read changes and write to compass database.

[edit] groupsToCompassSyncD.pc

grouptoCompassSyncD a procedure called by SyncD to sync data in the IDP2 with COMPASS Database. The Package used for this operation is ID_GROUPS_COMPASS_PKG.

[edit] oraUtils_GN.pc

This Pro*C scripts is a oracle utility program which helps to connect and disconnect to databases for retrieving data

The procedure, dbConnect to connect to database. The procedure, dbDisConnect disconnects from the database.

[edit] messageQutils.c

This script help in reading and writing queues used in input output operations. Some of the operation performed are Reads from the Q, Writes to the Q, Deletes the Q and Getting the number of messages in the Q.

Procedure msgCreate to create message Queue, msgGetRef to get reference to message queue, msgDelete to delete message from the Queue, msgReceive to buffer the messages to be sent, msgSend to send message,

[edit] common_GN.c

Contains General utility procedures to support Group notification such as getting local time, converting seconds, etc.

Procedure, checkChildErrorExits will be called to check if child process is still running after stop message from the parent. getOraStatusDesc will be called to read oracle error messages and copy to the buffer.

[edit] configFileReader_GN.c

This script contains Utilities to process config files. Procedure ConfigFileReader Opens config file for read. Reads through the entries in the file. Ignores lines beginning with # and blank lines. Key Words are of the form key=val. Trims out leading/trailing spaces and quotes around the values. Allots memory for the key and the value and populates a linked list. Procedure ValidateConfigValues Validates the key value pairs in the linked list. Warns about Keys that are not used. Errors out on required keys that are not found.

Procedure getEnv reads the env variables and updates the linked list. Updates the linked list with value read for key from conf file and Frees up space used up by the linked list and validateEnv Validates env variables against the file system amongst other checks.

[edit] Include Files

All the definitions used across the programs are defined in the following header files.

  • common_GN.h
  • configFileReader_GN.h
  • messageQutils_GN.h
  • oraUtils_GN.h


[edit] Database Details

Some of the tables used by Group Notifier are

  • ID_GROUP_MEMBERSHIP
  • ID_GROUPS_DATA
  • ID_GROUP_MEMBERSHIP_HISTORY
  • DBA_SERVER_CODE_STATUS
  • SM_ACCOUNT_UPDATE_LIST
  • ID_GROUPS_TO_COMPASS

ID_GROUP_MEMBERSHIP All the information about the groups will be available in id_group_membership table. Webobject applications access the information from this table. Whenever the group membership is edited by the group owner, changes are made in this table. These changes are synchronized with the id_group_data available in the compass table through group notifier control process.

Name Null? Type
GROUP MEMBERSHIP_ID NOT NULL NUMBER(10)
ACCOUNT_ID NOT NULL NUMBER(10)
GROUP_ID NOT NULL NUMBER(10)
LOGIN_ID NUMBER(10)
VERIFIED_EMAIL_ADDRESS_ID NUMBER(10)
PERSONA_ID NOT NULL NUMBER(10)
PROFILE_VISIBLE_FLAG NOT NULL VARCHAR2(1)
MEMBERSHIP_UUID NOT NULL VARCHAR2(34)
CREATE_DATE NOT NULL DATE
MODIFY_DATE NOT NULL DATE

ID_GROUP_TO_COMPASS

Changes made in the membership are stored in this database. Group Notifier scans for the changes and updates it in COMPASS database.

Name Type Null?
GROUP_TO_COMPASS_ID NUMBER NOT NULL
ACCOUNT_ID NUMBER(10) NOT NULL
GROUP_ID NUMBER NOT NULL
IS_OWNER_FLAG VARCHAR2(1) NOT NULL
PREV_OWNER_ACCOUNT_ID NUMBER(10)
SOURCE VARCHAR2(50) NOT NULL
MSGTYPE VARCHAR2(10) NOT NULL
CREATE_DATE DATE NOT NULL

ID_GROUP_MEMBERSHIP_HISTORY

All the information about the changes in the Membership are stored in this database. Data in this database will be useful more for making undo and redo.

Name Type Null ?
GROUP_MEMBERSHIP_HISTORY_ID NUMBER(10) NOT NULL,
GROUP_MEMBERSHIP_ID NUMBER(10) NOT NULL
ACCOUNT_ID NUMBER(10) NOT NULL
GROUP_ID NUMBER(10) NOT NULL
LOGIN_ID NUMBER(10)
VERIFIED_EMAIL_ADDRESS_ID NUMBER(10)
PERSONA_ID NUMBER(10) NOT NULL
PROFILE_VISIBLE_FLAG VARCHAR2(1) NOT NULL
MODIFY_TYPE_CODE VARCHAR2(4) NOT NULL
CREATE_DATE DATE NOT NULL
MODIFY_DATE DATE NOT NULL


ID_GROUP_DATA

This table, which is a part of COMPASS database is the main table, which stores all the information about the Groups. Complete information about the group will be available in this table and will be fetched by GCACHE and IDP2 for accessing by web object.

Name Null? Type
GROUP_ID NOT NULL NUMBER(10)
ACCOUNT_ID NOT NULL NUMBER(10)
MEMBERSHIP_UUID VARCHAR2(34)
GROUP_ADDRESS NOT NULL VARCHAR2(80)
SENDER_ADDRESS NOT NULL VARCHAR2(80)
SENDER_ALT_ADDRESS VARCHAR2(80)
RECIPIENT_ADDRESS VARCHAR2(80)
IS_OWNER_FLAG VARCHAR2(1)
STATUS_CODE NOT NULL VARCHAR2(4)
CREATE_DATE NOT NULL DATE
MODIFY_DATE NOT NULL DATE


[edit] Email Alerts

Following are the email notifications sent by the application.

[edit] When GroupNotifierCtl instance is in Pause State unexpectedly

Warning: groupNotifierCtl instance in <host> is in pause state

[edit] When GroupNotifierCtl instance has stopped unexpectedly

Warning: groupNotifierCtl instance in <host> has stopped

[edit] When WorkerD is not able to connect to Proxy

Warning: notifyWorkerD in <host> unable to connect to proxy; retried ‘n’ times

[edit] When Restarting of groupNotifierCtl Failed

Error restarting groupNotifierCtl in $RUN_ENVIRONMENT on $GN_HOST


[edit] Contact Person

Following are the contact persons for any queries related to Group Notifier Application

Jose George: jgeorge@apple.com
Prasad Nair: pknair@apple.com

[edit] Troubleshooting

[edit] Known Issues

[edit] CVS Path

CVS server  : is-cvs02.apple.com
Path  : isdev/groupNotifier

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu