Re: Oracle sucks on NT, was Re: 8.5 OPINION

From: Osvaldo Pinali Doederlein <osvaldo_at_visionnaire.com.br>
Date: 1998/12/13
Message-ID: <751dc6$rug$1_at_wfn.emn.fr>#1/1


P. Larsen <plarsen_at_ballston.uscg.mil> wrote in message news:74ol6d$7nh55_at_news.uscg.mil...
>Some of those are shared with M$ files which again are shared with other
>application - the purpose of DLL files of course. But the files exist in
>different versions. You install a new program after Oracle, and they might
>overwrite the DLL files which Forms builder was certified with, with
>versions that just doesn't work. And Oracle has no control over this. In my
>oppinion this concept is the cause of most crashes on Windows. And hence I
>have a problem with the guys who came up with the concept. They should have
>included some mechanisms to aviod this confussion and programmers should
 not
>abuse the DLL concept.

The solution exists. This is one of the interesting usages of NTFS multiple-stream files. Just on case you don't know this thing, try to reproduce the following test:



C:\tmp>dir > test

C:\tmp>dir
 Volume in drive C is System
 Volume Serial Number is B4E5-22D1

 Directory of C:\tmp

12/13/98  10:37p        <DIR>          .
12/13/98  10:37p        <DIR>          ..
12/13/98  10:37p                   321 test
               3 File(s)            321 bytes
                            312,504,832 bytes free

C:\tmp>dir >> test:MyNamedStream

C:\tmp>dir
 Volume in drive C is System
 Volume Serial Number is B4E5-22D1

 Directory of C:\tmp

12/13/98  10:37p        <DIR>          .
12/13/98  10:37p        <DIR>          ..
12/13/98  10:38p                   321 test
               3 File(s)            321 bytes
                            312,504,320 bytes free

C:\tmp>more < test:MyNamedStream
 Volume in drive C is System
 Volume Serial Number is B4E5-22D1

 Directory of C:\tmp

12/13/98  10:37p        <DIR>          .
12/13/98  10:37p        <DIR>          ..
12/13/98  10:37p                   321 test
               3 File(s)            321 bytes
                            312,504,320 bytes free

C:\tmp>more < test
 Volume in drive C is System
 Volume Serial Number is B4E5-22D1

 Directory of C:\tmp

12/13/98  10:37p        <DIR>          .
12/13/98  10:37p        <DIR>          ..
12/13/98  10:37p                     0 test
               3 File(s)              0 bytes
                            312,504,832 bytes free
------------------------------------

You can notice that after the second dir >>, the size of the file does not seem to grow, but the disk free space decreased. The syntax name1:name2 allows you to access named streams of NTFS files. If you omit stream names, the default (anonymous) stream is used. Unfortunately, most programs don't know a thing about named strings including NT shell and utilities (that's why DIR doesn't account for the whole size, only for the apnymous stream size); the only way I know to use named streams is through pipes. NT 5.0 is finally making this feature available throghout the shell and utilities, but the Win32 APIs allow you to use named streams.

You can see how easy os to put lots of versions of the same DLL in a single file, and have some simple mechanism to make each application get the exact DLL wanted. For example, the actual code could reside in a stream named after the DLL build version, or something more sophisticated like a UUID or vendor+build because several vendors can write unrelated DLLs with same name. NTFS would handle this situation gracefully and without any performance problems, it's build in the filesystem. And it could be completely transparent to applications.

Microsoft's biggest problem sometimes is compatibility. Win9x can't do that. Received on Sun Dec 13 1998 - 00:00:00 CET

Original text of this message