home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / mag&info / fyidev.zip / FYI_A.NET < prev    next >
Text File  |  1993-02-17  |  61KB  |  1,818 lines

  1.                                FYI
  2.  
  3. (Note: The origin of this information may be internal or external
  4. to Novell.  Novell makes every effort within its means to verify
  5. this information.  However, the information provided in this
  6. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  7. implied claims to the validity of this information.)
  8.  
  9.           TITLE:    Brequest v6.0 /l Option
  10.    DOCUMENT ID#:    FYI.A.2043
  11.            DATE:    04FEB93
  12.         PRODUCT:    NetWare Btrieve NLM
  13. PRODUCT VERSION:    6.0
  14.      SUPERSEDES:    NA
  15.  
  16. SYMPTOM
  17.  
  18.      NA
  19.  
  20. ISSUE/PROBLEM
  21.  
  22.      Brequest version 6.00x has a new load option, /l.  This allows
  23.      another instance of Brequest to be loaded even if Brequest is
  24.      already loaded. This option is useful if the ability to run
  25.      Windows applications utilizing the Btrieve requester at the
  26.      same time running DOS VM applications using Brequest is
  27.      desired.
  28.  
  29.      To run Windows applications utilizing the Btrieve requester,
  30.      Brequest must be loaded before starting Windows.  To run DOS
  31.      applications in Windows, Brequest must be loaded in each DOS
  32.      session.   However, if Brequest is loaded outside of Windows,
  33.      it cannot be loaded again in a DOS session.  FYI.A.2022
  34.      addresses this issue by suggesting the use of WINSTART.BAT to
  35.      load Brequest before Windows.  However, FYI.A.6101 points out
  36.      that Windows 3.1 will hang sporadically on exit if TSRs are
  37.      loaded with the WINSTART.BAT.
  38.  
  39. SOLUTION
  40.  
  41.      Load Brequest outside of Windows for Windows applications
  42.      utilizing the Btrieve requester.  In each Windows DOS session
  43.      that will be running a Btrieve application, load BREQUEST /l. 
  44.      This will load another instance of Brequest that is only
  45.      available to the DOS session.  This provides the DOS session
  46.      with its own copy of Brequest and prevents the DOS session
  47.      from using the instance of Brequest that was loaded before
  48.      Windows was started.
  49.  
  50.  
  51.  
  52.  
  53.                                FYI
  54.  
  55. (Note: The origin of this information may be internal or external
  56. to Novell.  Novell makes every effort within its means to verify
  57. this information.  However, the information provided in this
  58. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  59. implied claims to the validity of this information.)
  60.  
  61.           TITLE:    File Level Access Using Different Versions of
  62.                     Brequest
  63.    DOCUMENT ID#:    FYI.A.3021
  64.            DATE:    28JAN93
  65.         PRODUCT:    NetWare Btrieve NLM
  66. PRODUCT VERSION:    6.0
  67.      SUPERSEDES:    NA
  68.  
  69. SYMPTOM
  70.  
  71.      NetWare allows Btrieve to write to files without appropriate
  72.      user rights.
  73.  
  74. ISSUE/PROBLEM
  75.  
  76.      With Brequest v5.16, a user is able to write to a Btrieve file
  77.      if the user has Write access to the directory, even if the
  78.      user does not have Write access to the file.
  79.  
  80. SOLUTION
  81.  
  82.      This problem does not exist if Brequest 6.0 is used.  Brequest
  83.      6.0 uses File level access rather than Directory level access. 
  84.      If a user has RWCEMFA access to a directory but only RF (read
  85.      and file scan) access to a file, Brequest 6.0 will return a
  86.      status 94 on the open call.   However, Brequest 5.16 will
  87.      return status 0, and the file can be updated.
  88.  
  89.      The Supervisor access to a directory works differently,
  90.      however.  If the user has Supervisor access, then the file can
  91.      be opened regardless of the requester version.  This is mainly
  92.      because Supervisor rights "override all Inherited Rights Masks
  93.      in subdirectories and files."
  94.  
  95.      Directory Trustee    File Trustee     Btrieve 6.0    Btrieve
  96.      5.16
  97.         Assignment         Assignment        Status          Status
  98.           RWCEMFA            R    F            94               0
  99.  
  100.  
  101.  
  102.  
  103.                                FYI
  104.  
  105. (Note: The origin of this information may be internal or external
  106. to Novell.  Novell makes every effort within its means to verify
  107. this information.  However, the information provided in this
  108. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  109. implied claims to the validity of this information.)
  110.  
  111.           TITLE:    Brequest and TaskMAX
  112.    DOCUMENT ID#:    FYI.A.1773
  113.            DATE:    26JAN93
  114.         PRODUCT:    NetWare Btrieve NLM
  115. PRODUCT VERSION:    6.0
  116.      SUPERSEDES:    NA
  117.  
  118. SYMPTOM
  119.  
  120.      Status 95; Session hung
  121.  
  122. ISSUE/PROBLEM
  123.  
  124.      Can the DR DOS utility TaskMAX be used to run DOS Btrieve
  125.      applications using the NetWare Btrieve requester?
  126.  
  127. SOLUTION
  128.  
  129.      Since TaskMAX is a task switching utility, and not a
  130.      multi-tasking operating system, only the current task is
  131.      active.  Loading Brequest in a TaskMAX session, and then
  132.      running a Btrieve application will work, until the user
  133.      switches to another task.  At this point, trying to switch
  134.      back to the Btrieve task will result in either a hung session,
  135.      or a status 95 (Session No Longer Valid) returned to the
  136.      session.  This is because the SPX session between Brequest and
  137.      NetWare Btrieve on the server can not be maintained when a
  138.      session becomes inactive.
  139.  
  140.      An alternative would be to load Brequest before starting
  141.      TaskMAX.  However, with this configuration, only one session
  142.      can be running a Btrieve application, but this session can be
  143.      switched out for other non-Btrieve sessions, and resumed
  144.      successfully.
  145.  
  146.  
  147.  
  148.  
  149.                                FYI
  150.  
  151. (Note: The origin of this information may be internal or external
  152. to Novell.  Novell makes every effort within its means to verify
  153. this information.  However, the information provided in this
  154. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  155. implied claims to the validity of this information.)
  156.  
  157.           TITLE:    Determining If an Application Is Running In
  158.                     Windows DOS Box
  159.    DOCUMENT ID#:    FYI.A.6102
  160.            DATE:    21JAN93
  161.         PRODUCT:    Btrieve for Windows
  162. PRODUCT VERSION:    5.10a
  163.      SUPERSEDES:    NA
  164.  
  165. SYMPTOM
  166.  
  167.      NA
  168.  
  169. ISSUE/PROBLEM
  170.  
  171.      How can it be determined if a DOS application is running under
  172.      Windows?
  173.  
  174. SOLUTION
  175.  
  176.      An interrupt is available to determine if a DOS application is
  177.      running under Windows 3.1.  The following assembly code
  178.      demonstrates the interrupt. This function call also will
  179.      determine if Windows 3.1 is running in 386 Enhanced Mode or
  180.      Standard Mode.  If the function determines that Windows 3.1 is
  181.      running, it sets CX equal to 2 if Windows is running in
  182.      Standard Mode.  If Windows is running in Enhanced mode, it
  183.      sets CX equal to 3.
  184.  
  185.         mov     ax, 160ah               ;
  186.         int     2fh                     ; Check if in Windows 3.1
  187.      DOS box
  188.         or      ax, ax                  ;
  189.         jz      Windows31               ; Jump if Windows 3.1
  190.  
  191.  
  192.  
  193.  
  194.                                FYI
  195.  
  196. (Note: The origin of this information may be internal or external
  197. to Novell.  Novell makes every effort within its means to verify
  198. this information.  However, the information provided in this
  199. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  200. implied claims to the validity of this information.)
  201.  
  202.           TITLE:    Btrieve Operation 42 (Continuous Operation)
  203.                     Usage
  204.    DOCUMENT ID#:    FYI.A.1774
  205.            DATE:    18JAN93
  206.         PRODUCT:    NetWare Btrieve NLM
  207. PRODUCT VERSION:    6.0
  208.      SUPERSEDES:    NA
  209.  
  210. SYMPTOM
  211.  
  212.      Status 20 - Btrieve not loaded; Status 1 - Invalid Operation
  213.  
  214. ISSUE/PROBLEM
  215.  
  216.      The new Btrieve 6.0 operation 42, which allows Btrieve files
  217.      to be placed into Continuous Operation, and removed from
  218.      Continuous Operation, can only be called from an NLM
  219.      application.  It can not be called from a workstation
  220.      application.  If a workstation attempts to make a Btrieve
  221.      operation 42, a status 20 (Btrieve Not Loaded) will be
  222.      returned.  Btrieve version 5.x will return a status 1 (Invalid
  223.      Operation).
  224.  
  225. SOLUTION
  226.  
  227.      The Btrieve 6.0 SDK includes a sample NLM application that
  228.      demonstrates the usage of operation 42.  Both the C source
  229.      code and the compiled NLM are included.
  230.  
  231.  
  232.  
  233.  
  234.                                FYI
  235.  
  236. (Note: The origin of this information may be internal or external
  237. to Novell.  Novell makes every effort within its means to verify
  238. this information.  However, the information provided in this
  239. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  240. implied claims to the validity of this information.)
  241.  
  242.           TITLE:    Brequest and Older Version of VIPX.386
  243.    DOCUMENT ID#:    FYI.A.3022
  244.            DATE:    13JAN93
  245.         PRODUCT:    NetWare Btrieve NLM
  246. PRODUCT VERSION:    6.0
  247.      SUPERSEDES:    N/A
  248.  
  249. SYMPTOM
  250.  
  251.      Windows Dos Box hangs upon exit if Brequest is not unloaded.
  252.  
  253. ISSUE/PROBLEM
  254.  
  255.      If Brequest is not unloaded before exiting a Windows Dos Box,
  256.      the workstation will hang.  This only happens if VIPX.386
  257.      version 1.11 (19197 bytes dated 3-10-92) is used.
  258.  
  259. SOLUTION
  260.  
  261.      This problem does not exist if VIPX.386 v1.13 is loaded (24362
  262.      bytes dated 09-4-92).
  263.  
  264.  
  265.  
  266.  
  267.                                FYI
  268.  
  269. (Note: The origin of this information may be internal or external
  270. to Novell.  Novell makes every effort within its means to verify
  271. this information.  However, the information provided in this
  272. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  273. implied claims to the validity of this information.)
  274.  
  275.           TITLE:    Btrieve 6.0 and NetWare for SAA 1.3
  276.    DOCUMENT ID#:    FYI.A.2520
  277.            DATE:    13JAN93
  278.         PRODUCT:    NetWare Btrieve NLM
  279. PRODUCT VERSION:    6.0
  280.      SUPERSEDES:    NA
  281.  
  282. SYMPTOM
  283.  
  284.      NA
  285.  
  286. ISSUE/PROBLEM
  287.  
  288.      If users of NetWare for SAA want to use their file server as
  289.      a database server, they will need to get the Btrieve
  290.      requesters and utilities from NetWire or from Technical
  291.      Support, Austin.
  292.  
  293.      NetWare for SAA 1.3 was bundled with the following Btrieve
  294.      components:
  295.  
  296.             Brebuild.nlm   1.0b   34,347   11-16-82   4:31p
  297.             Brouter.nlm    6.0    16,767    5-11-92   1:19p
  298.             Bsetup.hlp     6.0    29,462    7-21-92  10:02a
  299.             Bsetup.nlm     6.0    32,275    7-29-92  10:44a
  300.             Bspxcom.nlm    6.0a   13,871    8-05-92  10:05a
  301.             Bspxstub.nlm   6.0       596    3-16-92  12:59p
  302.             Bstart.ncf     6.0        99    8-03-92   1:09p
  303.             Bstop.ncf      6.0        49    4-12-92   2:46p
  304.             Btrieve.nlm    6.0b  146,258   12-01-92  11:06a
  305.             Btrieve.org    6.0   145,193    5-12-92  10:08a
  306.             Btrmon.hlp     6.0    28,568    7-09-92   9:52a
  307.             Btrmon.nlm     6.0    56,856    7-16-92   2:13p
  308.             Btrun.nlm      6.0     8,742    9-09-92   1:16p
  309.             Butil.nlm      6.0   124,219    7-29-92  10:50a
  310.             Patch311.nlm (Dummy)     798    9-16-92   9:58a
  311.             Rspxstub.nlm   6.0     1,137    3-16-92   1:00p
  312.  
  313. SOLUTION
  314.  
  315.      NA
  316.  
  317.  
  318.  
  319.  
  320.                                FYI
  321.  
  322. (Note: The origin of this information may be internal or external
  323. to Novell.  Novell makes every effort within its means to verify
  324. this information.  However, the information provided in this
  325. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  326. implied claims to the validity of this information.)
  327.  
  328.           TITLE:    Running BREQUEST 6.0b and XQLP(O) with 2.01a
  329.    DOCUMENT ID#:    FYI.A.1880
  330.            DATE:    11JAN93
  331.         PRODUCT:    XQL for DOS
  332. PRODUCT VERSION:    2.01x
  333.      SUPERSEDES:    NA
  334.  
  335. SYMPTOM
  336.  
  337.      "Btrieve not Loaded" error
  338.  
  339. ISSUE/PROBLEM
  340.  
  341.      The following steps will cause XQLP(O) to return the message
  342.      BTRIEVE NOT LOADED when trying to load XQLP(O).
  343.  
  344.      1)   Load BREQUEST 6.0x
  345.      2)   Load XQLP or XQLPO 2.01x
  346.      3)   Unload XQLP(O).
  347.      4)   Reload XQLP(O). The error message will appear at this
  348.           point.
  349.  
  350.      After this, BREQUEST appears to be in memory but running a
  351.      STOP operation on Btrieve reports that Btrieve is not loaded. 
  352.      However, BREQUEST will not reload.
  353.  
  354. SOLUTION
  355.  
  356.      Rebooting the workstation is the only way to remove BREQUEST
  357.      from memory.
  358.  
  359.  
  360.  
  361.  
  362.                                FYI
  363.  
  364. (Note: The origin of this information may be internal or external
  365. to Novell.  Novell makes every effort within its means to verify
  366. this information.  However, the information provided in this
  367. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  368. implied claims to the validity of this information.)
  369.  
  370.           TITLE:    NetWare Resources Does Not Appear Under OS/2
  371.                     DOS Settings
  372.    DOCUMENT ID#:    FYI.A.1952
  373.            DATE:    07JAN93
  374.         PRODUCT:    Btrieve OS/2
  375. PRODUCT VERSION:    5.10
  376.      SUPERSEDES:    NA
  377.  
  378. SYMPTOM
  379.      NA
  380.  
  381. ISSUE/PROBLEM
  382.  
  383.      To run Brequest in a DOS session under OS/2, there are a few
  384.      options, depending on whether the DOS sessions is Global or
  385.      Private.  This can be configured in OS/2 2.0 (refer to
  386.      FYI.A.1870).
  387.  
  388.      However, if the VSHELL.SYS device driver is not loaded, the
  389.      "NetWare Resources" option will not appear in the DOS Settings
  390.      menu.  This is the option that allows the configuration of
  391.      Global or Private DOS box.
  392.  
  393. SOLUTION
  394.  
  395.      Make sure that VSHELL.SYS is loaded in the CONFIG.SYS file.
  396.  
  397.  
  398.  
  399.  
  400.                                FYI
  401.  
  402. (Note: The origin of this information may be internal or external
  403. to Novell.  Novell makes every effort within its means to verify
  404. this information.  However, the information provided in this
  405. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  406. implied claims to the validity of this information.)
  407.  
  408.           TITLE:    Btrieve Continuous Operations and File Logging
  409.    DOCUMENT ID#:    FYI.A.4203
  410.            DATE:    01OCT92
  411.         PRODUCT:    NetWare Btrieve
  412. PRODUCT VERSION:    6.0
  413.      SUPERSEDES:    NA
  414.  
  415. SYMPTOM
  416.  
  417.      Logging when used in conjunction with Continuous Operations
  418.      may lead to an inconsistent database.
  419.  
  420. ISSUE/PROBLEM
  421.  
  422.      File logging and backups can be used to rebuild Btrieve files
  423.      in case of system failures.  Continuous Operations allow
  424.      continuous access to Btrieve files while the files are being
  425.      backed up.
  426.  
  427.      These two features can not be used simultaneously.  While a
  428.      file is in Continuous Operation mode, the log file is still
  429.      open and being updated. If logging is activated when the file
  430.      is put into Continuous Operations mode, eventually the file
  431.      will not be in sync with the log file.
  432.  
  433.      Consider the following scenario:
  434.      1.   Get a backup of the Btrieve file.
  435.      2.   Activate logging.
  436.      3.   Touch the file (update, delete, insert).
  437.      4.   Start Continuous Operations.
  438.      5.   Touch the file.
  439.      6.   Backup is complete; end Continuous Operations.
  440.  
  441.      At this point if a power failure occurred, the backup from
  442.      step 4 would be restored.  The backup would reflect all the
  443.      changes that were made in step 3.  The log file, however,
  444.      would contain both the changes made in step 3 and step 5.  So
  445.      if the log file is used at a later date, in conjunction with
  446.      the latest backup from step 6, some operations in the log file
  447.      are already present in the Btrieve file, and errors during the
  448.      Roll Forward process will most likely occur.
  449.  
  450. SOLUTION
  451.  
  452.      Do not use logging and Continuous Operations at the same time.
  453.  
  454.  
  455.  
  456.  
  457.                                FYI
  458.  
  459. (Note: The origin of this information may be internal or external
  460. to Novell.  Novell makes every effort within its means to verify
  461. this information.  However, the information provided in this
  462. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  463. implied claims to the validity of this information.)
  464.  
  465.           TITLE:    Multiple Record Locks and DOS 4.01
  466.    DOCUMENT ID#:    FYI.A.4204
  467.            DATE:    01OCT92
  468.         PRODUCT:    Btrieve for DOS
  469. PRODUCT VERSION:    5.10a
  470.      SUPERSEDES:    NA
  471.  
  472. SYMPTOM
  473.  
  474.      If more than 20 records were locked using Multiple Record
  475.      Locks, a status 81 was returned.
  476.  
  477. ISSUE/PROBLEM
  478.  
  479.      An application using Btrieve for DOS v5.10a with DOS v4.01
  480.      returned status 81 when the application attempted to lock more
  481.      than 20 records with multiple locks.  Raising the Btrieve /L
  482.      parameter had no effect.
  483.  
  484.      The same application was running on another workstation
  485.      without problem. This workstation was running DOS v5.0.  The
  486.      AUTOEXEC.BAT and CONFIG.SYS files on both PCs were identical.
  487. SOLUTION
  488.  
  489.      The user upgraded to DOS v5.0 and problem was resolved.
  490.  
  491.  
  492.  
  493.  
  494.                                FYI
  495.  
  496. (Note: The origin of this information may be internal or external
  497. to Novell.  Novell makes every effort within its means to verify
  498. this information.  However, the information provided in this
  499. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  500. implied claims to the validity of this information.)
  501.  
  502.           TITLE:    Router Problem under NetWare v3.11
  503.    DOCUMENT ID#:    FYI.A.3228
  504.            DATE:    03FEB93
  505.         PRODUCT:    Network C for NLMs
  506. PRODUCT VERSION:    2.0e
  507.      SUPERSEDES:    NA
  508.  
  509. SYMPTOM
  510.  
  511.      SAPs are disappearing as they cross routers.
  512.  
  513. ISSUE/PROBLEM
  514.  
  515.      When the NetWare v3.11 router code was written, it was not
  516.      expected that one would advertise multiple service names on
  517.      the same network node and socket number.  When this is done,
  518.      it is possible to lose some of the SAPs as they cross routers.
  519.  
  520. SOLUTION
  521.  
  522.      The easiest solution is to design the code so that each
  523.      service is supported on its own socket.  An alternative way is
  524.      to advertise a common service name and then as part of the
  525.      "protocol," request a particular service.
  526.  
  527.  
  528.  
  529.  
  530.                                FYI
  531.  
  532. (Note: The origin of this information may be internal or external
  533. to Novell.  Novell makes every effort within its means to verify
  534. this information.  However, the information provided in this
  535. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  536. implied claims to the validity of this information.)
  537.  
  538.           TITLE:    SQL Servers Not Visible on Local Segments
  539.    DOCUMENT ID#:    FYI.A.6201
  540.            DATE:    02FEB93
  541.         PRODUCT:    NetWare OS/2 SDK
  542. PRODUCT VERSION:    2.0
  543.      SUPERSEDES:    NA
  544.  
  545. SYMPTOM
  546.  
  547.      If using an OS/2 SQL server over a WAN, the server may not be
  548.      seen if a query is made on a local segment.
  549.  
  550. ISSUE/PROBLEM
  551.  
  552.      When a PC Client is initially started up, it will issue a
  553.      general service query broadcast for service 9A and receive
  554.      back a list of all 9A services beyond the router.  If the 9A
  555.      server is on the local segment, it will not be included in the
  556.      list from the router nor will it respond to the broadcast as
  557.      expected.
  558.  
  559. SOLUTION
  560.  
  561.      After the 9A server starts advertising, however, the PC Client
  562.      should be able to pick up the service.  If the SQL server is
  563.      a 1.3 machine, it may not advertise regularly, if at all.  In
  564.      this case, NSD004 should fix the problem.  Presently, there is
  565.      no solution to the SQL server not responding to the query.
  566.  
  567.  
  568.  
  569.  
  570.                                FYI
  571.  
  572. (Note: The origin of this information may be internal or external
  573. to Novell.  Novell makes every effort within its means to verify
  574. this information.  However, the information provided in this
  575. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  576. implied claims to the validity of this information.)
  577.  
  578.           TITLE:    Stat() Function Does Not Return Correct Name
  579.                     Space.
  580.    DOCUMENT ID#:    FYI.A.4126
  581.            DATE:    01FEB93
  582.         PRODUCT:    Network C for NLMs
  583. PRODUCT VERSION:    SDKd
  584.      SUPERSEDES:    NA
  585.  
  586. SYMPTOM
  587.  
  588.      NA
  589.  
  590. ISSUE/PROBLEM
  591.  
  592.      The stat() function returns 0 rather than 1 for the
  593.      st_originatingNameSpace field when retrieving the status for
  594.      a Macintosh file.  This occurs if the file is at the root
  595.      directory.
  596.  
  597. SOLUTION
  598.  
  599.      The readdir() function returns the correct originating name
  600.      space.
  601.  
  602.  
  603.  
  604.  
  605.                                FYI
  606.  
  607. (Note: The origin of this information may be internal or external
  608. to Novell.  Novell makes every effort within its means to verify
  609. this information.  However, the information provided in this
  610. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  611. implied claims to the validity of this information.)
  612.  
  613.           TITLE:    Using MUX Semaphores with SPX
  614.    DOCUMENT ID#:    FYI.A.6202
  615.            DATE:    29JAN93
  616.         PRODUCT:    NetWare OS/2 SDK
  617. PRODUCT VERSION:    2.0
  618.      SUPERSEDES:    NA
  619.  
  620. SYMPTOM
  621.  
  622.      A workstation could wait infinitely for an SPX call to
  623.      complete.
  624.  
  625. ISSUE/PROBLEM
  626.  
  627.      If one issues a wait on MUX semaphores under OS/2 with one of
  628.      the semaphores in the MUX list being the ECB semaphore, the
  629.      apparent result is that the ECB semaphore will never clear. 
  630.      What really happens is that the semaphore is cleared and reset
  631.      by SPX but the application is never notified of it.  This
  632.      results in the wait never returning if it is set to infinite.
  633.  
  634. SOLUTION
  635.  
  636.      The problem does not occur with mutex or event semaphores.  If
  637.      one needs to wait on more than one semaphore, it is best to
  638.      create multiple threads that individually block one each on
  639.      each semaphore.
  640.  
  641.  
  642.  
  643.  
  644.                                FYI
  645.  
  646. (Note: The origin of this information may be internal or external
  647. to Novell.  Novell makes every effort within its means to verify
  648. this information.  However, the information provided in this
  649. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  650. implied claims to the validity of this information.)
  651.  
  652.           TITLE:    Using FP_SEG with Near Pointers
  653.    DOCUMENT ID#:    FYI.A.6004
  654.            DATE:    29JAN93
  655.         PRODUCT:    NetWare System Calls
  656. PRODUCT VERSION:    1.0
  657.      SUPERSEDES:    NA
  658.  
  659. SYMPTOM
  660.  
  661.      NA
  662.  
  663. ISSUE/PROBLEM
  664.  
  665.      The FP_SEG macro in MicroSoft's C 6.0 and 7.0 returns a
  666.      garbage segment address when passed a near pointer.
  667.  
  668. SOLUTION
  669.  
  670.      Make sure that you pass far pointers only to this macro when
  671.      using MicroSoft C.  Borland C++ 3.1's FP_SEG  will correctly
  672.      return the current data segment of a near pointer.
  673.  
  674.  
  675.  
  676.  
  677.                                FYI
  678.  
  679. (Note: The origin of this information may be internal or external
  680. to Novell.  Novell makes every effort within its means to verify
  681. this information.  However, the information provided in this
  682. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  683. implied claims to the validity of this information.)
  684.  
  685.           TITLE:    Driver Load Order Using LANSUP and OS/2 v2.0
  686.    DOCUMENT ID#:    FYI.A.6203
  687.            DATE:    28JAN93
  688.         PRODUCT:    NetWare OS/2 SDK
  689. PRODUCT VERSION:    2.0
  690.      SUPERSEDES:    
  691.  SYMPTOM
  692.  
  693.      NA
  694.  
  695. ISSUE/PROBLEM
  696.  
  697.      Protocols or system loads but no NetWare support.
  698.  
  699. ISSUE/PROBLEM
  700.  
  701.      When using the OS/2 driver LANSUP, the Open DataLink Interface
  702.      allowing multiple protocols on an OS/2 machine and the IBM
  703.      equivalent of ODINSUP, the order in which the drivers are
  704.      loaded is very important.  A file exists in the release
  705.      version of the requester, COEXIS.TXT, that contains an example
  706.      for OS/2 1.3 and older versions of LANServer or LANManager. 
  707.      This example does not work properly when using OS/2 2.0 or
  708.      LANSUP.  Apparently there is also an error in the
  709.      documentation.  The result is that the machine will not load
  710.      the operating system; or that it will load, but report driver
  711.      errors in the process; or that a successful initialization
  712.      will occur (no errors) but there will be no NetWare services
  713.      due to the wrong protocols being bound to the network board.
  714.  
  715. SOLUTION
  716.  
  717.      The proper order involves loading the LAN Server 2.0 protocol
  718.      drivers first in the CONFIG.SYS file.  Then the NetWare
  719.      Requester statements should be loaded in the following order:
  720.  
  721.           device=lsl.sys      run=ddaemon.exe     DEVICE=LANSUP.SYS
  722.           
  723.      device=ipx.sysdevice=spx.sysrun=spdaemon.exedevice=nmpipe.sy
  724.      sdevice=npserver.sysrun=npdaemon.exeetc ... where LANSUP
  725.      replaces ODINSUP.
  726.  
  727.  
  728.  
  729.  
  730.                                FYI
  731.  
  732. (Note: The origin of this information may be internal or external
  733. to Novell.  Novell makes every effort within its means to verify
  734. this information.  However, the information provided in this
  735. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  736. implied claims to the validity of this information.)
  737.  
  738.           TITLE:    OS/2 Use of Extended Attributes and NetWare
  739.    DOCUMENT ID#:    FYI.A.6204
  740.            DATE:    28JAN93
  741.         PRODUCT:    NetWare OS/2 SDK
  742. PRODUCT VERSION:    2.0
  743.      SUPERSEDES:    NA
  744.  
  745. SYMPTOM
  746.  
  747.      OS/2 File icons may disappear after the file has been moved,
  748.      copied, or restored.
  749.  
  750. ISSUE/PROBLEM
  751.  
  752.      OS2 stores a file's icon information, as well as other data,
  753.      in the file's extended attributes.  NetWare 2.x does not
  754.      support file extended attributes.  NetWare 3.x only supports
  755.      extended attributes when High Performace File System (HPSF)
  756.      namespace is loaded.  There was a feature under OS/2 1.x that
  757.      would show a program's icon for its type associated data files
  758.      that is no longer available in OS/2 2.0.  Therefore, this
  759.      problem may occur when upgrading from OS/2 1.x to 2.0
  760.      regardless of the NetWare version.
  761.  
  762. SOLUTION
  763.  
  764.      If Extended Attributes are required, load the HPFS namespace
  765.      NLM, OS2.NAM.  Make sure that the backup software supports
  766.      long file names.
  767.  
  768.  
  769.  
  770.  
  771.                                FYI
  772.  
  773. (Note: The origin of this information may be internal or external
  774. to Novell.  Novell makes every effort within its means to verify
  775. this information.  However, the information provided in this
  776. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  777. implied claims to the validity of this information.)
  778.  
  779.           TITLE:    NamedPipes Return Disconnect in Error
  780.    DOCUMENT ID#:    FYI.A.6205
  781.            DATE:    28JAN93
  782.         PRODUCT:    NetWare OS/2 SDK
  783. PRODUCT VERSION:    2.0
  784.      SUPERSEDES:    NA
  785.  
  786. SYMPTOM
  787.  
  788.      PeekPipe or ReadPipe returns 109, Pipe Broken on a valid pipe.
  789.  
  790. ISSUE/PROBLEM
  791.  
  792.      If any attempt is made to peek or read a pipe with a 0 buffer
  793.      specified, the pipe will be disconnected and error 109, pipe
  794.      broken will be returned.
  795.  
  796. SOLUTION
  797.  
  798.      Specify a buffer of at least 1 byte to be used.  In the case
  799.      of the peek, this will not cause a problem because the
  800.      contents are left in the pipe anyway.
  801.  
  802.  
  803.  
  804.  
  805.                                FYI
  806.  
  807. (Note: The origin of this information may be internal or external
  808. to Novell.  Novell makes every effort within its means to verify
  809. this information.  However, the information provided in this
  810. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  811. implied claims to the validity of this information.)
  812.  
  813.           TITLE:    PurgeSalvagableFile Spelling Difference in
  814.                     Windows
  815.    DOCUMENT ID#:    FYI.A.4604
  816.            DATE:    28JAN93
  817.         PRODUCT:    NetWare C for Windows
  818. PRODUCT VERSION:    1.30
  819.      SUPERSEDES:    NA
  820.  
  821. SYMPTOM
  822.  
  823.      PurgeSalvagableFile shows as undefined under Windows
  824.  
  825. ISSUE/PROBLEM
  826.  
  827.      The call documented as PurgeSalvagableFile in the Windows SDK
  828.      is actually spelled PurgeSalvageableFile (note the extra "e")
  829.      in the code.  The other APIs document and code it like the
  830.      Windows documentation as PurgeSalvagableFile.
  831.  
  832. SOLUTION
  833.  
  834.      Make sure to add the extra "e" when using the Windows version
  835.      of this call.
  836.  
  837.  
  838.  
  839.  
  840.                                FYI
  841.  
  842. (Note: The origin of this information may be internal or external
  843. to Novell.  Novell makes every effort within its means to verify
  844. this information.  However, the information provided in this
  845. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  846. implied claims to the validity of this information.)
  847.  
  848.           TITLE:    GetServerInformation Always Returns 128 Bytes
  849.                     in Windows
  850.    DOCUMENT ID#:    FYI.A.4605
  851.            DATE:    28JAN93
  852.         PRODUCT:    NetWare C for Windows
  853. PRODUCT VERSION:    1.30
  854.      SUPERSEDES:    NA
  855.  
  856. SYMPTOM
  857.  
  858.      GetServerInformation may return too much data
  859.  
  860. ISSUE/PROBLEM
  861.  
  862.      It does not matter what structure size you specify in
  863.      GetServerInformation under Windows.  It will always return 128
  864.      bytes of data.
  865. SOLUTION
  866.  
  867.      Always allocate at least 128 bytes for the received statistics
  868.      buffer to avoid overwriting memory.
  869.  
  870.  
  871.  
  872.  
  873.                                FYI
  874.  
  875. (Note: The origin of this information may be internal or external
  876. to Novell.  Novell makes every effort within its means to verify
  877. this information.  However, the information provided in this
  878. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  879. implied claims to the validity of this information.)
  880.  
  881.           TITLE:    Problem Sharing Semaphores Between Multiple
  882.                     Workstations
  883.    DOCUMENT ID#:    FYI.A.6005
  884.            DATE:    28JAN93
  885.         PRODUCT:    NetWare System Calls
  886. PRODUCT VERSION:    1.0
  887.      SUPERSEDES:    NA
  888.  
  889. SYMPTOM
  890.  
  891.      NA
  892.  
  893. ISSUE/PROBLEM
  894.  
  895.      If several workstations attempt to open the same named
  896.      semaphore using system call C5h (00h), each recognizes that
  897.      they are the only one with the semaphore open.  This problem
  898.      only seems to occur when using this system call with MicroSoft
  899.      C 6.00A and MicroSoft C++ 7.0.
  900.  
  901. SOLUTION
  902.  
  903.      There is no workaround at this time.  Even doing the system
  904.      call with inline assembler instead of through int86() did not
  905.      solve the problem. Use one of the C APIs or switch compilers.
  906.  
  907.  
  908.  
  909.  
  910.                                FYI
  911.  
  912. (Note: The origin of this information may be internal or external
  913. to Novell.  Novell makes every effort within its means to verify
  914. this information.  However, the information provided in this
  915. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  916. implied claims to the validity of this information.)
  917.  
  918.           TITLE:    Diagnostics from Windows
  919.    DOCUMENT ID#:    FYI.A.2674
  920.            DATE:    26JAN93
  921.         PRODUCT:    NetWare C for Windows
  922. PRODUCT VERSION:    1.3
  923.      SUPERSEDES:    NA
  924.  
  925. SYMPTOM
  926.  
  927.      Diagnostic API GetServerAddressTable fails with IPXODI 2.0,
  928.      and the NWIPXSPX.DLL from the 1.3 SDK.
  929.  
  930. ISSUE/PROBLEM
  931.  
  932.      There are two problems that this FYI will address:
  933.  
  934.      1)   Using LSL/IPXODI version 2.0 causes GetServerAddressTable
  935.           to fail.  Using component number 2, the workstation
  936.           crashes needing a hard reset. For component number 3, the
  937.           FindComponent is not found in the component list, thus
  938.           the function fails.
  939.  
  940.      2)   The NWIPXSPX.DLL that came with the SDK 1.3 has a problem
  941.           that was addressed in an earlier FYI, concerning the
  942.           NWMemmove "helper" function.  It did not copy the entire
  943.           diagnostic reply to the  buffers if they were larger than
  944.           255 bytes.
  945.  
  946. SOLUTION
  947.  
  948.      The only known solution is to use the IPXODI v1.20 drivers.
  949.  
  950.  
  951.  
  952.  
  953.                                FYI
  954.  
  955. (Note: The origin of this information may be internal or external
  956. to Novell.  Novell makes every effort within its means to verify
  957. this information.  However, the information provided in this
  958. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  959. implied claims to the validity of this information.)
  960.  
  961.           TITLE:    Bug in NLM Example Program
  962.    DOCUMENT ID#:    FYI.A.1529
  963.            DATE:    21JAN93
  964.         PRODUCT:    Network C for NLMs
  965. PRODUCT VERSION:    All versions
  966.      SUPERSEDES:    NA
  967.  
  968. SYMPTOM
  969.  
  970.      NA
  971.  
  972. ISSUE/PROBLEM
  973.      The program on Page 3-23 of the NLM Library Reference Volume
  974.      1 is incorrect.  If executed as is, the custom data for the
  975.      NLM, which is stored in the global variable (globalString),
  976.      will be NULL.
  977.  
  978.      The problem is that an uninitialized global variable will be
  979.      set to NULL before the program begins execution.  The data is
  980.      read into the variable, globalString, correctly; but this is
  981.      done before the uninitialized global variables have been set
  982.      to NULL.
  983.  
  984. SOLUTION
  985.  
  986.      When creating the global variable, globalString, assign a
  987.      value to the string.  This will prevent the string from being
  988.      set to NULL before the program executes.
  989.  
  990.  
  991.  
  992.  
  993.                                FYI
  994.  
  995. (Note: The origin of this information may be internal or external
  996. to Novell.  Novell makes every effort within its means to verify
  997. this information.  However, the information provided in this
  998. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  999. implied claims to the validity of this information.)
  1000.  
  1001.           TITLE:    File in DOS Partition of Server Would Not
  1002.                     Truncate
  1003.    DOCUMENT ID#:    FYI.A.1328
  1004.            DATE:    18JAN93
  1005.         PRODUCT:    Network C for NLMs
  1006. PRODUCT VERSION:    2.00D
  1007.      SUPERSEDES:    NA
  1008.  
  1009. SYMPTOM
  1010.  
  1011.      A file in the DOS partition of a NetWare file server would not
  1012.      truncate after data was modified.
  1013.  
  1014. ISSUE/PROBLEM
  1015.  
  1016.      A file in the DOS partition of a NetWare file server contains
  1017.      five lines. The application NLM reads the five lines and
  1018.      modifies the data to only have four lines and writes it back
  1019.      out.  Viewing the file again indicates that the fifth line is
  1020.      still in the file.  The following calls were being issued:
  1021.  
  1022.          ■ DOSOpen (), DOSRead (), DOSClose ()
  1023.          ■ data was modified here
  1024.          ■ DOSOpen (), DOSWrite (), DOSClose ()
  1025.          ■ file was viewed here which indicated no change had
  1026.      occurred
  1027. SOLUTION
  1028.  
  1029.      The call to DOSWrite () does not cause the file to truncate if
  1030.      the data length of the file to be written is less than the
  1031.      original length.
  1032.  
  1033.      The DOSWrite () writes data to a particular offset for a
  1034.      particular length.
  1035.  
  1036.      To "rewrite" a file, the second DOSOpen () listed above must
  1037.      be changed to DOSCreate ().
  1038.  
  1039.      The document states that the DOSCreate () will truncate the
  1040.      file if it exists or create a file if it does not exist.
  1041.  
  1042.      The call to DOSCreate () returns a file handle that can be
  1043.      used on subsequent calls to DOSWrite () and DOSClose ().
  1044.  
  1045.  
  1046.  
  1047.  
  1048.                                FYI
  1049.  
  1050. (Note: The origin of this information may be internal or external
  1051. to Novell.  Novell makes every effort within its means to verify
  1052. this information.  However, the information provided in this
  1053. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1054. implied claims to the validity of this information.)
  1055.  
  1056.           TITLE:    Bug in TTSTransactionStatus
  1057.    DOCUMENT ID#:    FYI.A.1530
  1058.            DATE:    15JAN93
  1059.         PRODUCT:    Network C for NLMs
  1060. PRODUCT VERSION:    SDKe
  1061.      SUPERSEDES:    NA
  1062.  
  1063. SYMPTOM
  1064.  
  1065.      Incorrect Transaction completed status
  1066.  
  1067. ISSUE/PROBLEM
  1068.  
  1069.      When using the TTSTransactionStatus() call on the local
  1070.      server, CLIB is not long swapping the transaction number.  An
  1071.      incorrect transaction number will result one of two problems. 
  1072.      The TTSTransactionStatus() call may report that the
  1073.      transaction has completed, erroneously; or it may never show
  1074.      the transaction as completed.
  1075.  
  1076. SOLUTION
  1077.  
  1078.      With CLIB v3.11d and earlier, when using the
  1079.      TTSTransactionStatus() call on the local server, LongSwap()
  1080.      the transaction number.
  1081.  
  1082.  
  1083.  
  1084.                                FYI
  1085.  
  1086. (Note: The origin of this information may be internal or external
  1087. to Novell.  Novell makes every effort within its means to verify
  1088. this information.  However, the information provided in this
  1089. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1090. implied claims to the validity of this information.)
  1091.  
  1092.           TITLE:    Closing Temporary Socket in BeginDiagnostics()
  1093.    DOCUMENT ID#:    FYI.A.4903
  1094.            DATE:    15JAN93
  1095.         PRODUCT:    NetWare C Interface DOS
  1096. PRODUCT VERSION:    1.2
  1097.      SUPERSEDES:    NA
  1098.  
  1099. SYMPTOM
  1100.  
  1101.      Multiple calls to BeginDiagnostics() fails after the eleventh
  1102.      attempt when searching for a target.
  1103.  
  1104. ISSUE/PROBLEM
  1105.  
  1106.      BeginDiagnostics() function does not close the temporary
  1107.      socket.
  1108.  
  1109.      This is an example from DIAG.C:
  1110.  
  1111.      int GetRemoteSPXSocket( BeginDiagnosticStruct *destination,
  1112.      BYTE *cList )
  1113.      *
  1114.      *
  1115.       tempSocket = (WORD)0x4545;
  1116.       if( IPXOpenSocket((BYTE *)&tempSocket, 0) )
  1117.       /* after the 11th call, it now returns the 254 here */
  1118.         return 1;
  1119.  
  1120.       IPXRecvECB.socketNumber = tempSocket;
  1121.      *
  1122.      *
  1123.       /* normally returns a 252 error here for the first 11 calls
  1124.      */
  1125.       if ( IPXRecvECB.inUseFlag || IPXRecvECB.completionCode )
  1126.         return IPXRecvECB.completionCode   /* no response received
  1127.      */
  1128.  
  1129.      int BeginDiagnostics(destination, connectionID, componentList
  1130.      )
  1131.      *
  1132.      *
  1133.       /* first open a socket then init receive ECBs */
  1134.       tempSocket = (WORD)0x00;    /* let IPX pick socket number */
  1135.       ccode = IPXOpenSocket((BYTE)&tempSocket, 0);
  1136.  
  1137.       /* call to function */
  1138.       if( (ccode = GetRemoteSPXSocket(destination,componentList))
  1139.      != 0 )
  1140.        Error = COULD_NOT_OPEN_SOCKET;
  1141.       else
  1142.       {
  1143.         for (i=0; i<RESPONSE_ECBS; i++)
  1144.         {
  1145.      *
  1146.      *
  1147.       if (Error == NO_ERRORS)
  1148.       {
  1149.       *
  1150.       *
  1151.         if (ccode == 0)
  1152.         {
  1153.         *
  1154.         *
  1155.         else
  1156.           Error = COULD_NOT_BEGIN_CONNECTION;
  1157.           if (Error != NO_ERRORS)
  1158.             IPXCloseSocket (thisECB.socketNumber);
  1159.         }
  1160.       else
  1161.        Error = COULD_NOT_OPEN_SOCKET;
  1162.       /********************************************
  1163.       NOTE THAT THE TEMPORARY SOCKET IS NOT CLOSED
  1164.       BEFORE THE RETURN (my comments)
  1165.       ********************************************/
  1166.  
  1167.       return (Error);
  1168.  
  1169. SOLUTION
  1170.  
  1171.      The fix is in the source code, DIAG.C.  The function,
  1172.      IPXCloseSocket(), must be called when an error occurs.
  1173.  
  1174.      int BeginDiagnostics(destination, connectionID, componentList
  1175.      )
  1176.      *
  1177.      *
  1178.       /* first open a socket then init receive ECB's */
  1179.       tempSocket = (WORD)0x00;    /* let IPX pick socket number */
  1180.       ccode = IPXOpenSocket((BYTE)&tempSocket, 0);
  1181.  
  1182.       /* call to function */
  1183.       if( (ccode = GetRemoteSPXSocket(destination,componentList))
  1184.      != 0 )
  1185.        Error = COULD_NOT_OPEN_SOCKET;
  1186.       else
  1187.       {
  1188.         for (i=0; i<RESPONSE_ECBS; i++)
  1189.         {
  1190.      *
  1191.      *
  1192.       if (Error == NO_ERRORS)
  1193.       {
  1194.       *
  1195.       *
  1196.         if (ccode == 0)
  1197.         {
  1198.         *
  1199.         *
  1200.         else
  1201.           Error = COULD_NOT_BEGIN_CONNECTION;
  1202.          /****************************************
  1203.          Comment out or remove this section as it is
  1204.          not necessary.
  1205.  
  1206.          if (Error != NO_ERRORS)
  1207.             IPXCloseSocket (thisECB.socketNumber);
  1208.         *****************************************/
  1209.         }
  1210.       else
  1211.        Error = COULD_NOT_OPEN_SOCKET;
  1212.  
  1213.       /* place fix here  - close temporary socket */
  1214.       IPXCloseSocket (tempSocket);
  1215.      
  1216.       return (Error);
  1217.  
  1218.  
  1219.  
  1220.  
  1221.                                FYI
  1222.  
  1223. (Note: The origin of this information may be internal or external
  1224. to Novell.  Novell makes every effort within its means to verify
  1225. this information.  However, the information provided in this
  1226. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1227. implied claims to the validity of this information.)
  1228.  
  1229.           TITLE:    OS/2 Requester Update, NSD201, Interferes with
  1230.                     NWTools.
  1231.    DOCUMENT ID#:    FYI.A.6206
  1232.            DATE:    13JAN93
  1233.         PRODUCT:    NetWare OS/2 SDK
  1234. PRODUCT VERSION:    2.0
  1235.      SUPERSEDES:    NA
  1236.  
  1237. SYMPTOM
  1238.  
  1239.      NWTools script files no longer work after NSD201 applied.
  1240.  
  1241. ISSUE/PROBLEM
  1242.  
  1243.      NWTools script files, *.NWS, that are created with version
  1244.      2.0A of the OS/2 Requester will not run properly when the
  1245.      drivers have been updated with NSD201.  Specific examples
  1246.      include not being able to attach to a server with an NWS file. 
  1247.      The problem is apparently with NWTOOLS.EXE and NWTOOLS.DLL
  1248.      included with NSD201.  New script files may not work correctly
  1249.      either.
  1250.  
  1251. SOLUTION
  1252.  
  1253.      Save a backup copy of NWTOOLS.EXE and NWTOOLS.DLL before
  1254.      installing NSD201.
  1255.  
  1256.  
  1257.  
  1258.  
  1259.                                FYI
  1260.  
  1261. (Note: The origin of this information may be internal or external
  1262. to Novell.  Novell makes every effort within its means to verify
  1263. this information.  However, the information provided in this
  1264. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1265. implied claims to the validity of this information.)
  1266.  
  1267.           TITLE:    Interrupt Line 21, Function 3F Bug in Shell
  1268.    DOCUMENT ID#:    FYI.A.6006
  1269.            DATE:    13JAN93
  1270.         PRODUCT:    NetWare Shell
  1271. PRODUCT VERSION:    3.31
  1272.      SUPERSEDES:    NA
  1273.  
  1274. SYMPTOM
  1275.  
  1276.      NA
  1277.  
  1278. ISSUE/PROBLEM
  1279.  
  1280.      If a section of a file is locked with Interrupt line 21
  1281.      function 5C00 and another workstation using the file tries to
  1282.      read from the locked area the call appears to succeed, even
  1283.      though it should fail.  The carry flag is supposed to be set
  1284.      and an error code returned in the AX register.  The error code
  1285.      (5 in this case) is being returned but the carry flag is not
  1286.      being set so the contents of the AX register are processed as
  1287.      the number of bytes read instead of as an error code.  There
  1288.      is no way to tell if an error has occurred in this case.  This
  1289.      bug has been found in NETX.EXE v3.26 and v3.31 but may exist
  1290.      in others.
  1291.  
  1292. SOLUTION
  1293.  
  1294.      NA
  1295.  
  1296.  
  1297.  
  1298.                                FYI
  1299.  
  1300. (Note: The origin of this information may be internal or external
  1301. to Novell.  Novell makes every effort within its means to verify
  1302. this information.  However, the information provided in this
  1303. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1304. implied claims to the validity of this information.)
  1305.  
  1306.           TITLE:    How to Attach to Multiple File Servers with
  1307.                     the Same Password
  1308.    DOCUMENT ID#:    FYI.A.2947
  1309.            DATE:    12JAN93
  1310.         PRODUCT:    NetWare C for Windows
  1311. PRODUCT VERSION:    1.3
  1312.      SUPERSEDES:    NA
  1313.  
  1314. SYMPTOM
  1315.  
  1316.       NA
  1317.  
  1318. ISSUE/PROBLEM
  1319.  
  1320.      If a user has the same password across multiple file servers,
  1321.      how can a developer write an application that does not prompt
  1322.      this user for their password every time they attach to a
  1323.      different file server?
  1324.  
  1325.      If a user is logged in to one server and needs to attach to
  1326.      another file server, the user's login script can be modified
  1327.      to contain add the attach command to the other file servers. 
  1328.      However, the user will have to synchronize passwords across
  1329.      multiple file servers to avoid having to enter a password
  1330.      every time attaching to a new file server.
  1331.  
  1332.      This is not the case on the DOS command line, regardless of
  1333.      the fact that the user's passwords are synchronized or not on
  1334.      multiple servers.  If the user is logged in to one server and
  1335.      wants to attach to another server, the password will have to
  1336.      be reentered.
  1337.  
  1338.      The reason is that the attach login script command has a
  1339.      different set of code than the attach command on the DOS
  1340.      command line.  The attach login script command will not prompt
  1341.      the user for a password if the password is synchronized
  1342.      because it is built into the login routine.  However, the
  1343.      attach command on the DOS command line will always prompt for
  1344.      a password.
  1345.  
  1346. SOLUTION
  1347.  
  1348.      There is no way to attach to multiple servers without entering
  1349.      the password.  However, Novell has a set of code that can be
  1350.      purchased just like any other product.  This code will enable
  1351.      an application to attach/login to multiple servers without
  1352.      having the user enter each password.
  1353.  
  1354.  
  1355.  
  1356.  
  1357.                                FYI
  1358.  
  1359. (Note: The origin of this information may be internal or external
  1360. to Novell.  Novell makes every effort within its means to verify
  1361. this information.  However, the information provided in this
  1362. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1363. implied claims to the validity of this information.)
  1364.  
  1365.           TITLE:    min() and max() Are Both Macros and Functions
  1366.    DOCUMENT ID#:    FYI.A.6007
  1367.            DATE:    08JAN93
  1368.         PRODUCT:    Network C for NLMs
  1369. PRODUCT VERSION:    2.0d
  1370.      SUPERSEDES:    NA
  1371.  
  1372. SYMPTOM
  1373.  
  1374.      Compiler errors in STDLIB.H
  1375.  
  1376. ISSUE/PROBLEM
  1377.  
  1378.      min() and max() are defined as macros in STREAM.H but are
  1379.      prototyped as functions in STDLIB.H.  If STREAM.H is included
  1380.      before STDLIB.H, the compiler attempts to expand the prototype
  1381.      in STDLIB.H with the macro from STREAM.H.  This results in
  1382.      syntax errors in STDLIB.H.
  1383.  
  1384. SOLUTION
  1385.  
  1386.      Always include STREAM.H after STDLIB.H, or go into the
  1387.      STDLIB.H file and replace the prototypes with copies of the
  1388.      macro definitions from STREAM.H.
  1389.  
  1390.  
  1391.  
  1392.  
  1393.                                FYI
  1394.  
  1395. (Note: The origin of this information may be internal or external
  1396. to Novell.  Novell makes every effort within its means to verify
  1397. this information.  However, the information provided in this
  1398. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1399. implied claims to the validity of this information.)
  1400.  
  1401.           TITLE:    VerifyNetworkSerialNumber() Causes Lost
  1402.                     Connection
  1403.    DOCUMENT ID#:    FYI.A.1329
  1404.            DATE:    08JAN93
  1405.         PRODUCT:    NetWare System Calls
  1406. PRODUCT VERSION:    1.2
  1407.      SUPERSEDES:    NA
  1408.  
  1409. SYMPTOM
  1410.  
  1411.      A call to VerifyNetworkSerialNumber() with an invalid serial
  1412.      number will cause the calling workstation to lose its network
  1413.      connection.
  1414.  
  1415. ISSUE/PROBLEM
  1416.  
  1417.      If the networkSerialNumber parameter does not match the
  1418.      network's serial number, the calling workstation will lose its
  1419.      connection to the network. The documentation does not state
  1420.      this; however, this is the way the function is supposed to
  1421.      work.  The return values are only valid if the match occurs
  1422.      and some other error causes a nonzero return code.
  1423.  
  1424. SOLUTION
  1425.  
  1426.      NA
  1427.  
  1428.  
  1429.  
  1430.  
  1431.                                FYI
  1432.  
  1433. (Note: The origin of this information may be internal or external
  1434. to Novell.  Novell makes every effort within its means to verify
  1435. this information.  However, the information provided in this
  1436. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1437. implied claims to the validity of this information.)
  1438.  
  1439.           TITLE:    Home Directory Flag
  1440.    DOCUMENT ID#:    FYI.A.3861
  1441.            DATE:    06JAN93
  1442.         PRODUCT:    NetWare C Interface DOS
  1443. PRODUCT VERSION:    1.2
  1444.      SUPERSEDES:    NA
  1445.  
  1446. SYMPTOM
  1447.  
  1448.      NA
  1449.  
  1450. ISSUE/PROBLEM
  1451.  
  1452.      Where is the flag stored for creating the home directory for
  1453.      a newly created user?
  1454.  
  1455. SOLUTION
  1456.  
  1457.      This flag, which is 1 byte, is stored at offset 64 in the
  1458.      USER_DEFAULTS property of the SUPERVISOR.  If it is nonzero,
  1459.      SYSCON will prompt for the creation of the home directory if
  1460.      a new user is created.
  1461.  
  1462.  
  1463.  
  1464.  
  1465.                                FYI
  1466.  
  1467. (Note: The origin of this information may be internal or external
  1468. to Novell.  Novell makes every effort within its means to verify
  1469. this information.  However, the information provided in this
  1470. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1471. implied claims to the validity of this information.)
  1472.  
  1473.           TITLE:    Status 517 with XQL and Forest and Trees
  1474.    DOCUMENT ID#:    FYI.A.2120
  1475.            DATE:    31JAN93
  1476.         PRODUCT:    XQL
  1477. PRODUCT VERSION:    2.11
  1478.      SUPERSEDES:    NA
  1479.  
  1480. SYMPTOM
  1481.  
  1482.      Status 517 returned on SELECT statement
  1483.  
  1484. ISSUE/PROBLEM
  1485.  
  1486.      When accessing Platinum DDFs using Forest and Trees for
  1487.      Windows, if XQL v2.11 is loaded, a SELECT * FROM <TableName>
  1488.      statement will return a status 517 - "The From Clause is
  1489.      Missing" when obviously a FROM clause is present.
  1490.  
  1491. SOLUTION
  1492.  
  1493.      Platinum DDFs delimit their table names with semicolons that
  1494.      causes XQL to interpret the table name; as the end of the SQL
  1495.      statement, thus, producing a status 517.  Newer DDFs that do
  1496.      not have these semicolon delimiters are available from
  1497.      Platinum.
  1498.  
  1499.  
  1500.  
  1501.  
  1502.                                FYI
  1503.  
  1504. (Note: The origin of this information may be internal or external
  1505. to Novell.  Novell makes every effort within its means to verify
  1506. this information.  However, the information provided in this
  1507. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1508. implied claims to the validity of this information.)
  1509.  
  1510.           TITLE:    Outer Join on a Computed Field
  1511.    DOCUMENT ID#:    FYI.A.1775
  1512.            DATE:    29JAN93
  1513.         PRODUCT:    NetWare SQL
  1514. PRODUCT VERSION:    3.0
  1515.      SUPERSEDES:    NA
  1516.  
  1517. SYMPTOM
  1518.  
  1519.      Status 875; Status 220
  1520.  
  1521. ISSUE/PROBLEM
  1522.  
  1523.      When a CREATE VIEW statement is used to create a view with a
  1524.      computed field whose resulting type is an integer, that
  1525.      computed field is considered to be a 4-byte integer.  This is
  1526.      important when using this field as part of an outer (or null)
  1527.      join because the data type and length of the join fields must
  1528.      match exactly for an outer join.  For example, in the
  1529.      following statement, the field T2 is a 4-byte integer
  1530.      containing the value 100:
  1531.  
  1532.                CREATE VIEW Test (T1, T2) AS SELECT F1, 100 FROM
  1533.                Tbl1
  1534.  
  1535.      Consequently, the following statement will only work if
  1536.      TBL2.FLD is a 4-byte integer and is also an index (or first
  1537.      segment of an index) on table Tbl2:
  1538.  
  1539.                SELECT * FROM Test, Tbl2 WHERE Test.T2 =
  1540.                Tbl2.fld(+)
  1541.  
  1542.      If either of these conditions is not met, a status 220 "No
  1543.      Matching Index on Secondary Keys" will be returned.
  1544.  
  1545.      Currently, there is a problem with NetWare SQL v3.0b where the
  1546.      above SELECT statement will return an error 875 "Only a right
  1547.      Outer Join Is Supported," even if TBL2.FLD is a 4-byte integer
  1548.      and an index.
  1549.  
  1550. SOLUTION
  1551.  
  1552.      If the view is created at the Relational Primitive level
  1553.      instead of using SQL statements, the xCompute function is used
  1554.      to specify the computed field.  The xCompute function has
  1555.      parameters that allow the application to specify both the type
  1556.      and size of the resulting field.  In this case, the computed
  1557.      field can be created as a 2- or 4-byte integer, whichever is
  1558.      needed for the outer join.
  1559.  
  1560.  
  1561.  
  1562.  
  1563.                                FYI
  1564.  
  1565. (Note: The origin of this information may be internal or external
  1566. to Novell.  Novell makes every effort within its means to verify
  1567. this information.  However, the information provided in this
  1568. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1569. implied claims to the validity of this information.)
  1570.  
  1571.           TITLE:    Blank User in USER.DDF Causes Security
  1572.                     Problems in Xtrieve
  1573.    DOCUMENT ID#:    FYI.A.1130
  1574.            DATE:    27JAN93
  1575.         PRODUCT:    Xtrieve PLUS
  1576. PRODUCT VERSION:    4.1x
  1577.      SUPERSEDES:    NA
  1578.  
  1579. SYMPTOM
  1580.  
  1581.      Status 205 when loading Xtrieve PLUS
  1582.  
  1583. ISSUE/PROBLEM
  1584.  
  1585.      Years ago, it was possible to set up a blank user when
  1586.      installing security on data dictionary files.  Currently,
  1587.      blank users are not supported.  If a blank user exists in
  1588.      USER.DDF, then Xtrieve cannot be loaded without returning a
  1589.      status 205, which indicates "Invalid Password."
  1590.  
  1591.      The reason this error occurs is with the way Xtrieve logs into
  1592.      a set of DDF files.  Xtrieve first attempts an xLogin to the
  1593.      dictionaries.  If a status 209 (Invalid User) is returned,
  1594.      Xtrieve attempts to do another xLogin prompting for the user
  1595.      name and password.  However, if anything other than a status
  1596.      209 is returned to Xtrieve on the first xLogin call, then
  1597.      Xtrieve will not prompt the user for the user name and
  1598.      password.
  1599.  
  1600.      When Xtrieve attempts its first xLogin call, it always passes
  1601.      a blank user name and a blank password.  Normally, this would
  1602.      return status 209 on a dictionary with security installed. 
  1603.      However, because there is a blank entry in the USER.DDF file,
  1604.      a status 205 is returned instead.  Because Xtrieve does not
  1605.      trap for anything but a status 209 on the xLogin, the status
  1606.      205 would be relayed to the user of Xtrieve.
  1607.  
  1608.      It is interesting to note that XQLI will prompt for a username
  1609.      and password if security is installed on the data dictionary
  1610.      files, without attempting an initial XQLLogin call.  XQLI will
  1611.      prompt the user for a password even if the user name is blank. 
  1612.      So, the status 205 will not occur when logging in through XQLI
  1613.      unless the password specified is invalid.
  1614.  
  1615. SOLUTION
  1616.  
  1617.      To work around the problem, remove the blank user from
  1618.      USER.DDF. BSIM.EXE, B.EXE, or any utility that provides
  1619.      Btrieve or XQLP function calls will do the trick.
  1620.  
  1621.      The DDF files have Btrieve owner names on them when security
  1622.      is installed.  The Btrieve owner name on the DDF files will be
  1623.      the same as the master password specified when security was
  1624.      installed.  The USER.DDF file can be checked for a blank user
  1625.      first, by running BUTIL -SAVE down key path 0.  If there is a
  1626.      blank user, then using a Btrieve or XQL utility, read the
  1627.      record with the blank user then delete it from the Btrieve
  1628.      file.
  1629.  
  1630.  
  1631.  
  1632.  
  1633.                                FYI
  1634.  
  1635. (Note: The origin of this information may be internal or external
  1636. to Novell.  Novell makes every effort within its means to verify
  1637. this information.  However, the information provided in this
  1638. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1639. implied claims to the validity of this information.)
  1640.  
  1641.           TITLE:    Update Problem with NetWare SQL
  1642.    DOCUMENT ID#:    FYI.A.1776
  1643.            DATE:    26JAN93
  1644.         PRODUCT:    NetWare SQL
  1645. PRODUCT VERSION:    3.0b
  1646.      SUPERSEDES:    NA
  1647.  
  1648. SYMPTOM
  1649.  
  1650.      Only one record updated
  1651.  
  1652. ISSUE/PROBLEM
  1653.  
  1654.      If an UPDATE SQL statement is sent to NetWare SQL that has a
  1655.      restriction based on a field that is an index, only the first
  1656.      record matching the restriction will be updated.  
  1657.  
  1658.      Example:
  1659.  
  1660.                  UPDATE Appointments SET Amount^Due = 0.00 WHERE
  1661.                ID > 0
  1662.  
  1663.           This command will only update the first record having ID
  1664.           > 0 if ID is an index in the Appointments table.  All
  1665.           other records will remain as they were.
  1666.  
  1667.      This problem was introduced by the December patches for
  1668.      NetWare SQL v3.0.
  1669.  
  1670. SOLUTION
  1671.  
  1672.      Use NetWare SQL with the September patch release installed.
  1673.  
  1674.  
  1675.  
  1676.                                FYI
  1677.  
  1678. (Note: The origin of this information may be internal or external
  1679. to Novell.  Novell makes every effort within its means to verify
  1680. this information.  However, the information provided in this
  1681. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1682. implied claims to the validity of this information.)
  1683.  
  1684.           TITLE:    Running Out of NetWare SQL Connections
  1685.    DOCUMENT ID#:    FYI.A.2948
  1686.            DATE:    25JAN93
  1687.         PRODUCT:    NetWare SQL
  1688. PRODUCT VERSION:    3.0
  1689.      SUPERSEDES:    NA
  1690.  
  1691. SYMPTOM
  1692.  
  1693.      Status 266 on a xLogin or XQLLogin call
  1694.  
  1695. ISSUE/PROBLEM
  1696.  
  1697.      The NetWare SQL documentation states the Error Message 266
  1698.      "Number of Sessions Logged in Exceeds Maximum."  However, it
  1699.      does not provide any explanation on the real reason for this
  1700.      message.
  1701.  
  1702.      The documentation should state that if a five-user copy of
  1703.      NetWare SQL is installed and all five connections are in use,
  1704.      a sixth user will not be able to log into a database.  The
  1705.      NetWare SQL Monitor Utility (NDBMON.NLM) can be used to see
  1706.      which users currently have connections to NetWare SQL.
  1707.  
  1708. SOLUTION
  1709.  
  1710.      Use only what is allowed in terms of SQL connections on your
  1711.      SQL server.
  1712.  
  1713.  
  1714.  
  1715.  
  1716.                                FYI
  1717.  
  1718. (Note: The origin of this information may be internal or external
  1719. to Novell.  Novell makes every effort within its means to verify
  1720. this information.  However, the information provided in this
  1721. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1722. implied claims to the validity of this information.)
  1723.  
  1724.           TITLE:    VIEW.DDF and Owner Names
  1725.    DOCUMENT ID#:    FYI.A.1131
  1726.            DATE:    22JAN93
  1727.         PRODUCT:    Xtrieve Plus
  1728. PRODUCT VERSION:    4.1x
  1729.      SUPERSEDES:    NA
  1730.  
  1731. SYMPTOM
  1732.  
  1733.      NA
  1734.  
  1735. ISSUE/PROBLEM
  1736.  
  1737.      When security is installed on a set of data dictionary files,
  1738.      each .DDF file is assigned a Btrieve owner name that is the
  1739.      same as the Master password with one exception:  the VIEW.DDF
  1740.      file does not have a Btrieve owner name assigned.  Why is this
  1741.      the case?
  1742.  
  1743. SOLUTION
  1744.  
  1745.      Because multiple VIEW.DDF files can reference one or more set
  1746.      of DDFs, these files do not "belong" to any particular set of
  1747.      DDFs and cannot be assigned an owner name specific to one set
  1748.      of DDFs.  Therefore, there is never an owner name assigned to
  1749.      a VIEW.DDF file.
  1750.  
  1751.      There is only one exception to having multiple VIEW.DDF files
  1752.      that reference one set of DDFs; see FYI.A.1120 for this
  1753.      information pertaining to named database support under NetWare
  1754.      SQL 3.0.
  1755.  
  1756.  
  1757.  
  1758.  
  1759.                                FYI
  1760.  
  1761. (Note: The origin of this information may be internal or external
  1762. to Novell.  Novell makes every effort within its means to verify
  1763. this information.  However, the information provided in this
  1764. document is FOR YOUR INFORMATION only.  Novell makes no explicit or
  1765. implied claims to the validity of this information.)
  1766.  
  1767.           TITLE:    More on XQL and .SHR Files
  1768.    DOCUMENT ID#:    FYI.A.1777
  1769.            DATE:    12JAN93
  1770.         PRODUCT:    XQL for DOS
  1771. PRODUCT VERSION:    2.11
  1772.      SUPERSEDES:    NA
  1773.  
  1774. SYMPTOM
  1775.  
  1776.      NA
  1777.  
  1778. ISSUE/PROBLEM
  1779.  
  1780.      In a previous FYI (FYI.A.1759, XQL and .SHR Files), a
  1781.      description of how XQL creates and maintains a .SHR file was
  1782.      explained.  Another anomaly has been found regarding this
  1783.      issue.  If XQL is patched so that it can be accessed from
  1784.      within Windows and then loaded from the WINSTART.BAT file, the
  1785.      .SHR file is created in the users current directory when
  1786.      Windows was started.  Subsequently, if the user opens a DOS
  1787.      session and from the same directory, tries to load XQL again,
  1788.      one of two things will happen:
  1789.  
  1790.       1.  If DOS SHARE was loaded before Windows, a Sharing
  1791.           Violation Error will be returned and XQL will not load
  1792.  
  1793.       2.  If DOS SHARE was not loaded, XQL will overwrite the .SHR
  1794.           file already present with a new .SHR file.  Subsequently,
  1795.           unloading XQL from this DOS session will cause this .SHR
  1796.           file to be deleted.  This means that the XQL that was
  1797.           loaded by WINSTART.BAT no longer has an available .SHR
  1798.           file to use.  This will eventually lead to status 202 or
  1799.           821 (Invalid Cursor ID) errors to be returned.
  1800.  
  1801.      The previous situations occur only when the .SHR files are
  1802.      being created on a local drive.  If the current working
  1803.      directory is a NetWare drive, this problem does not exist; two
  1804.      .SHR files are properly created and maintained in the same
  1805.      NetWare directory.
  1806.  
  1807. SOLUTION
  1808.  
  1809.      If using a local drive, load XQL inside the DOS session from
  1810.      a different directory than the current working directory when
  1811.      Windows was started or specify an /x: parameter on the XQL
  1812.      load line pointing to a different directory.  See the previous
  1813.      FYI.A.1759 for more information about the /x: parameter.
  1814.  
  1815.  
  1816.  
  1817.  
  1818.