;-) that was pretty funny man; thanks I needed that... That was more help then any of the technical advice given the mood this has put me in.
Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 | [EMAIL PROTECTED] -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of Dean Fiala Sent: Friday, November 18, 2005 11:40 AM To: [email protected] Subject: Re: [AspNetAnyQuestionIsOk] File still in use error This is piling on, but I can't resist. If the network is down, how can files be transferred? Do you have a fleet of bicycle couriers carrying floppy disks? :) On 11/18/05, Falls, Travis D (HTSC, CASD) <[EMAIL PROTECTED]> wrote: > He wants to be able to run if the database or network connection to the > database goes down since the "business" of the application is file > transfer... my take is if those things are down... they are your > infrastructure... plumbing.... you shouldn't be expected to run without > them. It doesn't help me become a better developer doing this stuff that is > for sure. So Oracle isn't even an option... he would have the same network > concerns... not for nothing but I work for a fortune 100 company... our > network is fine. :-) > > Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 | [EMAIL > PROTECTED] > > > -----Original Message----- > From: [email protected] > [mailto:[EMAIL PROTECTED] Behalf Of Dean Fiala > Sent: Friday, November 18, 2005 11:04 AM > To: [email protected] > Subject: Re: [AspNetAnyQuestionIsOk] File still in use error > > > Sigh. That has to be one of the top 10 instances of NIH (Not Invented > Here) syndrome I've encounterd. He'd rather you spend your time > solving a problem that a) doesn't need to be solved, or b) or doing so > t in a convoluted way instead of using an extremely mature and > reliable product. > > But sense no arguing with the insane. If he really mistrusts SQL > Server, have him pony up for Oracle or just be freakishly paranoid > with backing up the log files. Serializing an entire database because > you don't trust it is akin to buying a rickshaw to tow your Mercedes > because you are afraid the Mercedes might break down if you use it. > > This goes to #2, right after the company that built an entire > relational database engine in java, because they didn't think their > $100,000 Oracle installation was fast enough. > > Yes, they went out of business. > > On 11/18/05, Falls, Travis D (HTSC, CASD) <[EMAIL PROTECTED]> wrote: > > I am embarrassed to say this but my boss doesn't trust it. I have to read > > the entire database into an object structure and serialize it to the file > > system incase the database goes down. Most of my issues are due to him not > > trusting the infrastructure. He doesn't trust MSMQ as a state machine > > either. > > > > Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 | [EMAIL > > PROTECTED] > > > > > > -----Original Message----- > > From: [email protected] > > [mailto:[EMAIL PROTECTED] Behalf Of Dean Fiala > > Sent: Friday, November 18, 2005 9:29 AM > > To: [email protected] > > Subject: Re: [AspNetAnyQuestionIsOk] File still in use error > > > > > > Sounds very meaty indeed. One other thought comes to mind, why not > > use SQL Server to manage the state? It is very robust, supports > > transactions, and is perfect for keeping track of ticky-tacky details > > in an organized manner. > > > > On 11/18/05, Falls, Travis D (HTSC, CASD) <[EMAIL PROTECTED]> wrote: > > > I have been trying to research if it makes sense to change my state > > > management from file system to MSMQ; I haven't seen much on state > > > management out there though. > > > > > > Basically I have written a real time file transfer system using > > > FileSystemWatcher that moves files from different nas locations to our > > > local windows server (and vice-verca) and then executes a script in a > > > custom procedural scripting language. > > > > > > For example, > > > if a file is found in location "X" meeting the requirement of say "*.pgp" > > > it is copied to a specified destination(s) directory as "*.working" > > > I then write out the state file, > > > > > > I then rename it to "*.pgp" and write out the state file again, > > > I then delete the original and yes you guessed it... > > > write out a state file... > > > > > > the final step is kicking off our script that does PGP decrypt/encrypt, > > > FTP, bla bla bla. > > > > > > It gets complicated if I have multiple files in a directory, and multiple > > > destinations; say a destination and an archive.... I am just don't like > > > my architecture for this and can't seem to think of a way to make it > > > better... What I need to do is find another person that feels like doing > > > a really harsh code review.... :-) Thanks for the help Dean... as always > > > you are full of great suggestions. The system works great the issue is > > > recoverability if the system goes down or there is an issue. This is my > > > first real-time multithreaded application; before this I lived in the > > > response-request paradigm of the web. > > > > > > Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 | [EMAIL > > > PROTECTED] > > > > > > > > > -----Original Message----- > > > From: [email protected] > > > [mailto:[EMAIL PROTECTED] Behalf Of Dean Fiala > > > Sent: Friday, November 18, 2005 8:44 AM > > > To: [email protected] > > > Subject: Re: [AspNetAnyQuestionIsOk] File still in use error > > > > > > > > > Hmm, you have other service or process paying particular attention to > > > the file system. A virus scanner perhaps? > > > > > > You could also try sleeping the threads briefly, though that might > > > defeat the purpose. Are you sure you only have one instance of the > > > app running? I've scrod myself in similar fashion before. > > > > > > Another option, is as you suggested to use another queuing mechanism. > > > > > > Or, though this is a bit messy, you could version your files, and > > > clean up at your leisure. > > > > > > First time you save TDF02 in C:\RAFT.NET\Service\State\IDs\TDF02_1.state > > > then TDF02_2.state, etc. > > > > > > Your retrieval piece would just have to be smart enough to grab the > > > latest version of each object. > > > > > > > > > > > > On 11/18/05, Falls, Travis D (HTSC, CASD) <[EMAIL PROTECTED]> wrote: > > > > No it is off; thanks for the thoughts Dean. I am starting to think > > > > that the OS simply isn't releasing the files quick enough... > > > > > > > > Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 | [EMAIL > > > > PROTECTED] > > > > > > > > > > > > -----Original Message----- > > > > From: [email protected] > > > > [mailto:[EMAIL PROTECTED] Behalf Of Dean Fiala > > > > Sent: Friday, November 18, 2005 8:12 AM > > > > To: [email protected] > > > > Subject: Re: [AspNetAnyQuestionIsOk] File still in use error > > > > > > > > > > > > Go to the Services console. You can find it the Administrative Tools > > > > program group. > > > > > > > > There is a service called Indexing Service. Stop it and set its > > > > startup type = manual. > > > > > > > > On 11/18/05, Falls, Travis D (HTSC, CASD) <[EMAIL PROTECTED]> wrote: > > > > > Dean, > > > > > Thanks for the response... I have been struggling with this for > > > > > weeks. I am currently in development stages and I am running this > > > > > console application on my laptop. I don't know if indexing is turned > > > > > on... how would I check? > > > > > > > > > > Travis D. Falls | Consultant RAFT.Net IT | 860.547.4070 | [EMAIL > > > > > PROTECTED] > > > > > > > > > > > > > > > -----Original Message----- > > > > > From: [email protected] > > > > > [mailto:[EMAIL PROTECTED] Behalf Of Dean Fiala > > > > > Sent: Thursday, November 17, 2005 10:29 PM > > > > > To: [email protected] > > > > > Subject: Re: [AspNetAnyQuestionIsOk] File still in use error > > > > > > > > > > > > > > > Travis, > > > > > Do you have the Indexing Service on, on this server? If so, turning > > > > > it offf, might solve the problem. > > > > > > > > > > On 11/17/05, Falls, Travis D (HTSC, CASD) <[EMAIL PROTECTED]> wrote: > > > > > > I have the following method in a utility class I created that is > > > > > > instantiated via a singleton. I think begin my file work load that > > > > > > can be 100 files... I start 10 threads that do a copy, rename, > > > > > > delete, script work load. During these threads I create files > > > > > > based on the work item's ID for example S053R.state with the method > > > > > > below. Every step of the way I call the below method to serialize > > > > > > an object to maintain state incase the system goes down or the > > > > > > transfer fails. > > > > > > > > > > > > My questions: > > > > > > > > > > > > 1. Why do I keep getting the: > > > > > > 2005-11-17 14:22:40,305 [2096] ERROR > > > > > > com.TheHartford.HTSC.RAFT.FileWatcher.Utilities [(null)] > > > > > > -EXCEPTION: Access to the path > > > > > > "C:\RAFT.NET\Service\State\IDs\TDF02.state" is denied. > > > > > > System.UnauthorizedAccessException: Access to the path > > > > > > "C:\RAFT.NET\Service\State\IDs\TDF02.state" is denied. > > > > > > at System.IO.__Error.WinIOError(Int32 errorCode, String str) > > > > > > at System.IO.FileStream..ctor(String path, FileMode mode, > > > > > > FileAccess access, > > > > > > FileShare share, Int32 bufferSize, Boolean useAsync, String > > > > > > msgPath, Boolean bFromProxy) > > > > > > at System.IO.FileStream..ctor(String path, FileMode mode, > > > > > > FileAccess access, FileShare share, Int32 bufferSize) > > > > > > at System.IO.FileInfo.Create() > > > > > > at > > > > > > com.TheHartford.HTSC.RAFT.FileWatcher.Utilities.DoSerialize(String > > > > > > Path, String Name, Object o) in > > > > > > c:\raft\filewatcher\code\utilities.cs:line 438 > > > > > > > > > > > > 2. would it be better to create a state engine using MSMQ instead? > > > > > > > > > > > > Any help would be greatly appreciated; I have been struggling with > > > > > > this one for a while. I feel like I am closing everything and I > > > > > > know this is the only method and process that creates and deletes > > > > > > these files. > > > > > > > > > > > > > > > > > > public void DoSerialize(String Path, String Name, object o) { > > > > > > lock (syncRoot2){ > > > > > > try{ > > > > > > object j = new object(); > > > > > > j = o; > > > > > > DirectoryInfo di = new DirectoryInfo(Path); > > > > > > FileInfo[] finfos = di.GetFiles(Name); > > > > > > for(int i = 0; i < finfos.Length; i++){ > > > > > > FileInfo file = finfos[i]; > > > > > > try{ > > > > > > file.Delete(); > > > > > > } > > > > > > catch (FileNotFoundException fnfe){ > > > > > > log.Error("FILE NOT FOUND: > > > > > > " + fnfe.ToString() + " " + fnfe.Message); > > > > > > } > > > > > > catch (IOException fnfe){ > > > > > > log.Error("IO EXCEPTION: " > > > > > > + fnfe.ToString() + " " + fnfe.Message); > > > > > > } > > > > > > } > > > > > > FileInfo fi = new FileInfo(Path + Name); > > > > > > using (Stream myFileStream = fi.Create()){ > > > > > > SoapFormatter serializer = new > > > > > > SoapFormatter(); > > > > > > serializer.Serialize(myFileStream, > > > > > > j); > > > > > > DoGarbageCollection(); > > > > > > } > > > > > > } > > > > > > catch (Exception ex){ > > > > > > DoMessaging("FWE00017", ex.Message + " " + > > > > > > ex.ToString(), GetDateNowDateTime()); > > > > > > log.Error("EXCEPTION: " + ex.Message + " " + > > > > > > ex.ToString()); > > > > > > } > > > > > > } > > > > > > > > > > > > > > > > > > ************************************************************************* > > > > > > This communication, including attachments, is > > > > > > for the exclusive use of addressee and may contain proprietary, > > > > > > confidential and/or privileged information. If you are not the > > > > > > intended > > > > > > recipient, any use, copying, disclosure, dissemination or > > > > > > distribution is > > > > > > strictly prohibited. If you are not the intended recipient, please > > > > > > notify > > > > > > the sender immediately by return e-mail, delete this communication > > > > > > and > > > > > > destroy all copies. > > > > > > ************************************************************************* > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Dean Fiala > > > > > Very Practical Software, Inc > > > > > http://www.vpsw.com > > > > > > > > > > > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Dean Fiala > > > > Very Practical Software, Inc > > > > http://www.vpsw.com > > > > > > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Dean Fiala > > > Very Practical Software, Inc > > > http://www.vpsw.com > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > Dean Fiala > > Very Practical Software, Inc > > http://www.vpsw.com > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > > > > > > > > > > > -- > Dean Fiala > Very Practical Software, Inc > http://www.vpsw.com > > > > > Yahoo! Groups Links > > > > > > > > > > > > Yahoo! Groups Links > > > > > > > -- Dean Fiala Very Practical Software, Inc http://www.vpsw.com Yahoo! Groups Links ------------------------ Yahoo! Groups Sponsor --------------------~--> Get fast access to your favorite Yahoo! Groups. Make Yahoo! your home page http://us.click.yahoo.com/dpRU5A/wUILAA/yQLSAA/saFolB/TM --------------------------------------------------------------------~-> Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/AspNetAnyQuestionIsOk/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
