HDMS Wiki Home

  • InstallAdjunctAdder2003
  • Last edited by Maggie Woo on Jan 28, 2003 6:12 pm

    ADJUNCT_ADDER_2003

    A critical patch

    This is not only a patch, but a full installation of the ADJUNCT_ADDER mini-upgrade. This is the last "true" upgrade of the BCD System as all subsequent upgrades are installed as adjuncts.

    Please note that the core001c_adjunct.zip file also contains the Biotics Core Ns Module. If you are performing a fresh installation, you should not use the instructions on this page, but rather, look at the InstallBioticsCoreModule page.


    Test to see if you need to run this patch:

    At TCL: SELECT BCDSYS.CONTROL WITH @ID 'ADJUNCT_ADDER_2003'

    If there are no records found, you must run this patch.


    Installation.

    • (2) Unzip it to XFER.

    • (3) At TCL: ATTACH XFER

    • (4) At TCL: RUN PROGRAMS INSTALL

    • (5) At TCL: DETACH XFER THIS IS EXTREMELY IMPORTANT!!!

    The patch is very fast. It may never ask you anything at all. This is because the program that it is fixing is the key program that the ADJUNCT_ADDER itself requires in order to perform a successful installation.

    A full installation will prompt you--please answer the prompts to proceed.


    Patch details.

    PROBLEM:
    The GET_BCD_INFO subroutine determines what type of BCD it is. Modules installed via the ADJUNCT_ADDER can query to find out what kind of BCD System it is being installed to and direct the installation to do different things depending on the BCD Type. Not to be obscurely technical, the problem with this subroutine is that it was never designed to be called from within a symbolic field, and thus, it would access dictionaries by instantiating the @DICT variable. In doing so, it effectively changes the underlying dictionary of any select or list statement executed. Hence, if you started off by selecting records from the SYN file that relied on symbolic fields that called GET_BCD_INFO, it would generate error messages telling you that "some field" does not exist--because instead of looking at the SYN dictionary, it is now looking at the ET dictionary.

    For the data conversion software, the GET_BCD_INFO subroutine was used extensively to handle much of the data conversion of the global element data (doing different things depending on whether the data source was a Central BCD, and Ecology BCD, or an English Subnational BCD).

    SOLUTION:
    This subroutine has been fixed. The way the patch works is simple: because of the nature of the ADJUNCT_ADDER, its installation program immediately loads the GET_BCD_INFO subroutine it was shipped with. This can be dangerous because an older version will in fact kill a better version. Therefore, it is important not to install an older version of the ADJUNCT_ADDER. Once it does this load, it checks the type and whether or not the ADJUNCT_ADDER has been installed already.

    CAVEAT:
    The BCD installation version control is not highly sophisticated. It will not prevent users from installing an older version of some software on top of a better version. The ADJUNCT_ADDER module is the primary vulnerable point of this model because all recent upgrades have been handled as adjuncts. For this reason, it is advisable to reinstall all software from beginning to end (using the most up-to-date version) when preparing to do the final data conversion.