|
I would like to ask if anyone knows a workaround to our problem. The problem is bad performance due to a problem with Opportunistic Locking in some Windows versions, and is documented in this knowledge base article:
http://support.microsoft.com/?kbid=306981
Whilst not on the list, we verified that this problem persists on Windows 2000 Server SP4 as well.
The problem is that our ISAM database driver uses LockFileEx to lock parts of the database index files, which in effect will mark this file as "non-oplockable" as soon as the first concurrent access occurs. I understand that this LockFileEx call is probably unavoidable because the files are opened in shared mode to allow write access for concurrent clients to the same database.
We are already trying to get our hands on an improved ISAM database driver, but if LockFileEx is unavoidable this would provide no benefit for us. Accessing the database files locally is also out of question, unfortunately.
Are there any fixes or workarounds to this problem? Do you know any Microsoft Windows Server versions which aren't affected?
Any help would be appreciated.
|
|
|
|
|
There's no "fix" for this and only your testing on each version of the server is going to find any possible versions that are not affected. Also, your ISAM driver could render the results of this testing invalid.
I personally never use shared access to files. It's way too flaky and entirely dependent on the server's file system and network clients working perfectly (yeah, right! ). This can change from file server vendor to vendor (Novell Netware, Unix, Samba, Windows Networking, ...). Completely unsupportable...
If shared data is behind the application, I always go with SQL Server. It's simply the right tool for the job!
Now, I also realize that it's a very LARGE tool and is overkill for some applications. You CAN get away with a kind of file-sharing, without sharing the file. I've done this once before, by using a server-side singleton object that wraps the access to the file and maintains the database for the applications. This class library exposes methods that the clients call to get and set the data that they need while completely insulating the clients from the database.
The really nice part about this is that you can have multiple application types (Windows Forms, ASP.NET Web Apps, and mobile devices) all using the same database wrapper at the same time without knowning a damn thing about the database itself and without re-writing the datbase code for each platform!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
How to set a program to autostart at the start up of Windows XP?
thanks.
|
|
|
|
|
There are many way to do it such as:
- Copy the shortcur of your program and place it in the start up folder.
- Use Scheduled Tasks to schedule your application to start while you log on to the system.
- Define logon script in group policies (wink2/xp) to start an application.
- Design an application as windows services (win2k/xp).
|
|
|
|
|
Go to the following given path in your Registry by typing REGEDIT at your start|run prompt.
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN
make a new entry and copy your program shortcut at the right side of table and thats it!!!
Any query related to VB.NET+Network Programming
email: sharma.hariomprakash@gmail.com
|
|
|
|
|
Hello,
Iam developing an application, wherein i am trying to map a remote network drive. I did this using "Net Use" command of Windows Xp. (i created the command line and executed it.). The drive mapping was successful. After i read and write from the mapped network drive, when i try to disconnect the network drive(again using... Net Use Driveleter /DELETE /YES), windows says that the drive is in use, but there are no open sessions of the mapped drive.
Can someone help me in this regard, or can anyone throw light on how to use VC++ features for mapping and disconnecting the network drive??
I have to complete it very soon.. )
So please help me in this regard.
Thnx,
KAB
|
|
|
|
|
|
Since you're mapping a drive to a network share, I take it you're also opening files on that drive. Are you absolutely sure you closed all the files you have open on that drive? The error message says you didn't.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hello Dave Kreskowiak and Roath Kanel,
Yes, iam are reading files from the mapped network drive. But i have checked that we have closed all the files. i still did not understand why it is saying so. And the error was not consistent always..
Anyways i found some work around to solve. I got some VB code made it is as an exe and then executed it thru command line.. and it worked well also )
not i great dea i suppose, but my problem got solved.. )
Thanks a lot for replying to it so quickly.
thanks a lot.
thnx,
KAB
|
|
|
|
|
In .NET assembly I need many times load an unmanaged dll library and call it's method. This library do not know about existence of the function free, so it leaves garbage. How I can easier load this library so that the garbage will be deleted after it's unloading?
|
|
|
|
|
Find out where the programme lives, send him some RAM and ask him if that "reminds him of something". Then send another letter, asking him to fix the bug.
Worked fine for me...
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
Hi all,
I have a port monitor which in its WritePort does some compression, now everything works fine and the WritePort exits with a return TRUE and sets the bytes written pointer to the number of bytes wirtten in my port buffer.
Now the problem is, that the spooler calls writeport again with the same data endlessly. Even when I try with different printer drivers and applications this problem still persists.
The whole soluton functions with a windows terminal Service. But I dont think that this could be causing the trouble as it is the spooler on the clients side that keeps repeating calls to writeport and not ending with an enddoc.
I will appriciate any help or suggestions
Thanks very much.
Neoadam2000
|
|
|
|
|
When you say "sets the bytes written pointer to the number of bytes written in my port buffer", do you mean the actual number (compressed) or the number you were sent in?
If the former, it might be that the spooler thinks the write is failing, and is retrying.
Steve S
Developer for hire
|
|
|
|
|
Hi Steve S,
I am sending back the actual number read and put in the compression buffer not the number of compressed bytes. Still the MSDN states that no matter the number written back to the spooler, the spooler only needs the return result TRUE to know that the call has succeeded.
BOOL (WINAPI *pfnWritePort)(HANDLE hPort, LPBYTE pBuffer, DWORD cbBuf, LPDWORD pcbWritten );
where pcbWritten is the number wriiten.
Neoadam
|
|
|
|
|
hi~everyone
i hava a question puzzle me ! when i used "CFile's" open()function read a file use unicode in windows 98
but it's allways fail ! i can't get the handle of file!
please help me ande very thanks in advance!!
nothing
|
|
|
|
|
Perhaps you're missing the fact that Windows 9x doesn't have built in support for Unicode?
Check this[^] out.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I'm looking for an OpenType or TrueType font that contains both upper and lowercase plus digits (as a minimum), which consist of lines made of circular dots (like on electronic messageboards).
Anyone know one like this (ideally free!)? Failing that, can anyone direct me to a better place to look...
Needs to be OT/TT because I want to be able to rotate text without having to resort to GDI+ stuff (everything else uses straight GDI).
Thanks in advance
Steve S
Developer for hire
|
|
|
|
|
|
Thanks. If nothing else, I can use the trial editors to create what I need !
Steve S
Developer for hire
|
|
|
|
|
I am working on a client/server project.I want to send any jpg or bmp image from server(VB.NET appln) to another PC that can be rec'd by client(VB.NET appln). Plz give me some hint so that I can do this.
email: sharma.hariomprakash@gmail.com
|
|
|
|
|
Look into NetworkStreams and BinaryReaders/Writers.
Should not be too difficult.
I just looked and I don't have any specific code examples but I have moved data between machines before (not pictures specifically but other things) and it works fine.
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Jörgen Sigvardsson wrote:
If the physicists find a universal theory describing the laws of universe, I'm sure the a**hole constant will be an integral part of that theory.
My Blog[^]
|
|
|
|
|
i know all this using NetworkStream and BinaryReaders/Writers. but it takes a lot of time to send each data line every time after making a connection every time(using tcp sockets). Is there any another way to send half or full data at a time?
email: sharma.hariomprakash@gmail.com
|
|
|
|
|
I am not really sure what you mean by 'it takes a lot of time'.
This all depends on:
- How quick your network is.
- How large your file is.
- How you are reading the file in.
- How you are writing it out.
- How you are reading it in on the other end and putting it back together.
How are you quantifying the speed?
Look at the various ways you can use the readers and writers regarding reading in larger chunks and sending them. Look into ways to maybe compress what you are sending.
George Carlin wrote:
"Don't sweat the petty things, and don't pet the sweaty things."
Jörgen Sigvardsson wrote:
If the physicists find a universal theory describing the laws of universe, I'm sure the a**hole constant will be an integral part of that theory.
My Blog[^]
|
|
|
|
|
Hi, all. I'm trying to put a keylogger on my comp, one that would run undetected of course, and I need the log or text file to be automatically e-mailed to me each day. Do you have any suggestions that meet these requirements?
|
|
|
|
|
Sorry, noone is going to help with such a project. For very obvious reasons...
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|