dadlllink_defDLL Usage description This library contains functionality for exchange links and subscriptions. It also contains functions for subscription destroyed messages. Note on the function specifications: "iff" means "if and only if". DLL PROTOTYPES function extern long ldef.activate.current.exchange.link.and.commit() pre : Current record of daxch401 is filled with an existing exchange link, having status <> active. post : If return = OK then the current exchange link has been activated successfully; its status has been set to active; else nothing has been done. state : If return = OK then a retry point is set and a commit is given. return: Possible return values are the same as return values for function lmess.send.subscribe() in library dadlllink_mess. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multisite). function extern long ldef.activate.exchange.links( domain daxch.link link.f, domain daxch.link link.t ) pre : true post : All exchange links in the specified range, having status <> active, are activated if possible. state : A retry point is set and a commit is given. return: True if no exchange links have been selected or all exchange links selected are activated successfully; false if one or more exchange links in the specified range could not be activated. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multi-site). function extern long ldef.activate.exchange.links.detailed( domain daxch.envi senv.f, domain daxch.envi senv.t, domain daxch.comp scom.f, domain daxch.comp scom.t, domain daxch.cxch sxch.f, domain daxch.cxch sxch.t, domain daxch.cbat sbat.f, domain daxch.cbat sbat.t, domain daxch.cxch txch.f, domain daxch.cxch txch.t, domain daxch.cbat tbat.f, domain daxch.cbat tbat.t ) pre : true post : All exchange links in the specified range, having status <> active, are activated if possible. state : A retry point is set and a commit is given. return: True if no exchange links have been selected or all exchange links selected are activated successfully; false if one or more exchange links in the specified range could not be activated. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multisite). function extern long ldef.active.exchange.link.exists.for.batch( domain daxch.cxch txch, domain daxch.cbat tbat ) pre : true post : true return: True iff one or more exchange links exist for the specified batch, having status active. desc : This function can be used when importing. When running a regular import and this function returns true, exchange should check the batches to import to see whether there is any data waiting to be imported. If this function returns false, the regular import process can continue without checking the batches to import. function extern long ldef.active.or.partly.active.link.exists.for.batch (domain daxch.cxch txch, domain daxch.cbat tbat) pre : true post : true return: True iff one or more exchange links exist for the specified batch, having status <> inactive (source/target). desc : This function can be used when to check whether a batch can be deleted. A batch should not be deleted as long as there are any exchange links for it having status active or inactive (target only). function extern long ldef.can.delete.all.batches.in.range( domain daxch.cxch cxch.f, domain daxch.cxch cxch.t, domain daxch.cbat cbat.f, domain daxch.cbat cbat.t ) pre : true post : true return: True iff NONE of the batches is used as target batch in any exchange link having status Active or Inactive (target only) desc : If this function returns false this means that one of the batches in the specified range cannot be deleted. function extern long ldef.create.subscription( domain daxch.link subs, domain daxch.cxch sxch, domain daxch.cbat sbat, domain daxch.envi tenv, domain daxch.comp tcom, domain daxch.cxch txch, domain daxch.cbat tbat ) pre : All function parameters are filled (although tcom may be 0). tenv is an existing environment. post : If return: - the subscription defined by the function parameters has been created; - if the subscription already existed (due to an inconsistency) it has been 'reinitialized': the export done messages of the subscription have been deleted. state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. return: True if successful; false means: could not create the subscription, because the exchange scheme or the batch does not exist function extern long ldef.deactivate.current.exchange.link.and.commit() pre : Current record of daxch401 is filled with an existing exchange link, having status <> inactive (source/target). post : If return = OK then the current exchange link has been deactivated successfully and its status has been set to inactive (source/target); the import batches to do and the rejected import done messages are deleted. If return <> OK then the current exchange link could not be deactivated; its status has been set to inactive (target only). state : A retry point is set and a commit is given. return: Possible return values are the same as return values for function lmess.send.unsubscribe() in library dadlllink_mess. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multi-site). function extern long ldef.deactivate.exchange.links( domain daxch.link link.f, domain daxch.link link.t, long only.inactive ) pre : true post : If only.inactive: All exchange links in the specified range, having status <> inactive (source/target), are deactivated if possible. If not only.inactive: All exchange links in the specified range, having status inactive (target only), are deactivated if possible. state : A retry point is set and a commit is given. return:.True if no exchange links have been selected or all exchange links selected are deactivated successfully; false if one or more exchange links in the specified range could not be deactivated. risk :If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multi-site). function extern long ldef.deactivate.exchange.links.detailed( domain daxch.envi senv.f, domain daxch.envi senv.t, domain daxch.comp scom.f, domain daxch.comp scom.t, domain daxch.cxch sxch.f, domain daxch.cxch sxch.t, domain daxch.cbat sbat.f, domain daxch.cbat sbat.t, domain daxch.cxch txch.f, domain daxch.cxch txch.t, domain daxch.cbat tbat.f, domain daxch.cbat tbat.t, long only.inactive ) pre : true post : If only.inactive: All exchange links in the specified range, having status <> inactive (source/target), are deactivated if possible. If not only.inactive: All exchange links in the specified range, having status inactive (target only), are deactivated if possible. state : A retry point is set and a commit is given. return:.True if no exchange links have been selected or all exchange links selected are deactivated successfully; false if one or more exchange links in the specified range could not be deactivated. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multi-site). function extern ldef.delete.exchange.links.of.target.batch( domain daxch.cxch txch, domain daxch.cbat tbat ) pre : No exchange links exist for target batch txch/tbat having status Active or Inactive (target only). post : All exchange links for target batch txch/tbat have been deleted. state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. function extern long ldef.delete.subscription( domain daxch.link subs, domain daxch.envi tenv, domain daxch.comp tcom ) pre : true post : If return then either the subscription defined by the function parameters has been deleted (and the export done messages of the subscription have also been deleted), or the subscription did not exist and the rejected subscription destroyed message has been deleted. state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. return: True if action was successful; false if subscription does not exist and rejected subscription destroyed message also does not exist. function extern long ldef.delete.subscription.destroyed.message( domain daxch.link subs, domain daxch.envi tenv, domain daxch.comp tcom ) pre : true post : If return then the subscription destroyed message defined by the function parameters has been deleted. state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. return: True if action was successful; false if the subscription destroyed message did not exist. function extern long ldef.delete.subscriptions.of.source.batch( domain daxch.cxch sxch, domain daxch.cbat sbat ) pre : true post : All subscription of the source exchange scheme/batch have been deleted. If return then all subscription destroyed messages have been delivered to the target site successfully, otherwise one or more rejected subscription destroyed messages have been created state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. return: False iff one or more subscription destroyed messages could not be delivered. function extern long ldef.environment.is.used.in.exchange.links( domain daxch.envi senv ) pre : true post : true return: True iff the environment is used in one or more exchange links. function extern long ldef.environment.is.used.in.subscriptions( domain daxch.envi tenv ) pre : true post : true return: True iff the environment is used in one or more subscriptions. function extern long ldef.exchange.link.exists( domain daxch.link link ) pre : true post : true return: True iff the exchange link exists. function extern long ldef.exchange.link.exists.and.is.not.inactive( domain daxch.link link ) pre : true post : true return: True iff the exchange link exists and has status <> inactive (source/target). function extern long ldef.exchange.link.is.local( domain daxch.link link ) pre : true post : true return: True iff the exchange link exists and the source environment is equal to the current environment function extern long ldef.get.exchange.link( domain daxch.envi senv, domain daxch.comp scom, domain daxch.cxch sxch, domain daxch.cbat sbat, domain daxch.cxch txch, domain daxch.cbat tbat, ref domain daxch.link link ) pre : true post : If return then link = exchange link found. return: True iff exchange link having senv, scom, sxch, sbat, txch and tbat exists. function extern long ldef.get.exchange.scheme.and.batch.of.subscription (domain daxch.link subs, domain daxch.envi tenv, domain daxch.comp tcom, ref domain daxch.cxch sxch, ref domain daxch.cbat sbat) pre : true post : If return then sxch = source exchange scheme of subscription defined by subs/tenv/tcom; sbat = source batch of subscription defined by subs/tenv/tcom. return: True iff subscription subs/tenv/tcom exists. function extern long ldef.get.source.environment.of.exchange.link( domain daxch.link link, ref domain daxch.envi senv, ref domain daxch.comp scom ) pre : true post : If return then senv and scom are filled with the source environment and company of the exchange link. return: True iff the exchange link exists. function extern long ldef.get.source.information.of.exchange.link( domain daxch.link link, ref domain daxch.envi senv, ref domain daxch.comp scom, ref domain daxch.cxch sxch, ref domain daxch.cbat sbat ) pre : true post : If return then senv, scom, sxch and sbat are filled with the source environment, company, exchange scheme and batch of the exchange link. return: True iff the exchange link exists. function extern long ldef.get.subscription( domain daxch.cxch sxch, domain daxch.cbat sbat, domain daxch.envi tenv, domain daxch.comp tcom, domain daxch.cxch txch, domain daxch.cbat tbat, ref domain daxch.link subs ) pre : true post : If return then subs = subscription found. return: True iff subscription having sxch, sbat, tenv, tcom, txch and tbat exists. function extern long ldef.prepare.batch.to.be.deleted( domain daxch.cxch cxch, domain daxch.cbat cbat ) pre : true post : If return then all exchange links of the batch having status Inactive (source/target) and all subscriptions of the batch have been deleted; so the batch doesn't have any exchange links or subscriptions anymore. If not return then nothing has been done. state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. return: True iff there was no exchange link for this batch having status Active or Inactive (target only). desc : Before deleting a batch we should check whether this can be done; this is the case if there are no exchange links for this batch having status Active or Inactive (target only). If the batch can be deleted then the subscriptions and the exchange links having status Inactive (source/target) must be deleted first. A batch should only be deleted if this function returns true. function extern long ldef.resend.current.subscription.destroyed.message and.commit( ) pre : Current record of daxch407 is filled with an existing rejected subscription destroyed message. post : The current rejected subscription destroyed messages is resent. If the message is resent successfully it has been deleted. state : A retry point is set and a commit is given (if return = OK). return: Return value of function lmess.send.subscription.destroyed in dadlllink_mess. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multi-site). function extern long ldef.resend.subscription.destroyed.messages( domain daxch.link subs.f, domain daxch.link subs.t, domain daxch.envi tenv.f, domain daxch.envi tenv.t, domain daxch.comp tcom.f, domain daxch.comp tcom.t ) pre : true post : All rejected subscription destroyed messages in the specified range are resent. Each message that is resent successfully has been deleted. state : A retry point is set and a commit is given. return: True if no messages have been selected or all messages selected are sent successfully; false if one or more messages in the specified range could not be delivered. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multi-site). function extern long ldef.resend.subscription.destroyed.messages .detailed(domain daxch.cxch sxch.f, domain daxch.cxch sxch.t, domain daxch.cbat sbat.f, domain daxch.cbat sbat.t, domain daxch.envi tenv.f, domain daxch.envi tenv.t, domain daxch.comp tcom.f, domain daxch.comp tcom.t, domain daxch.cxch txch.f, domain daxch.cxch txch.t, domain daxch.cbat tbat.f, domain daxch.cbat tbat.t ) pre : true post : All rejected subscription destroyed messages in the specified range are resent. Each message that is resent successfully has been deleted. state : A retry point is set and a commit is given. return: True if no messages have been selected or all messages selected are sent successfully; false if one or more messages in the specified range could not be delivered. risk : If the system goes down during this process, an inconsistency between source and target system may exist (because a two phase commit is not available for multi-site). function extern long ldef.send.subscription.destroyed.for.current .subscription( ) pre : Current record of daxch402 is filled with an existing subscription to be deleted. post : After calling this function the subscription can (and must!) be deleted. If return <> OK then a rejected subscription destroyed message has been created. state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. return: Return value of function lmess.send.subscription.destroyed() in dadlllink_mess. function extern long ldef.set.status.of.link.to.inactive( domain daxch.link link ) pre : true post : If return then the status of the exchange link is inactive (source/target), otherwise nothing has been done. state : Before calling this function a retry point must be set; after calling this function a commit must be given; no commit is given in this function. return: True iff status of exchange link has been updated or the exchange was active (source/target) already. (false means: the status could not be updated, because the exchange link does not exist). note : This function will not remove the subscription at the source site. Therefore it should only be used when subscription has already been deleted or is currently being deleted! function extern long ldef.subscription.exists( domain daxch.link subs, domain daxch.envi tenv, domain daxch.comp tcom ) pre : true post : true return: True iff subscription defined by subs, tenv and tcom exists. function extern long ldef.subscription.exists.for.batch( domain daxch.cxch sxch, domain daxch.cbat sbat, domain daxch.comp startup.company ) pre : true post : true return: True iff a subscription having source exchange scheme sxch and source batch sbat exists.
| |||