Search Results

Search found 92665 results on 3707 pages for 'console server'.

Page 45/3707 | < Previous Page | 41 42 43 44 45 46 47 48 49 50 51 52  | Next Page >

  • Implementing a robust async stream reader for a console

    - by Jon
    I recently provided an answer to this question: C# - Realtime console output redirection. As often happens, explaining stuff (here "stuff" was how I tackled a similar problem) leads you to greater understanding and/or, as is the case here, "oops" moments. I realized that my solution, as implemented, has a bug. The bug has little practical importance, but it has an extremely large importance to me as a developer: I can't rest easy knowing that my code has the potential to blow up. Squashing the bug is the purpose of this question. I apologize for the long intro, so let's get dirty. I wanted to build a class that allows me to receive input from a Stream in an event-based manner. The stream, in my scenario, is guaranteed to be a FileStream and there is also an associated StreamReader already present to leverage. The public interface of the class is this: public class MyStreamManager { public event EventHandler<ConsoleOutputReadEventArgs> StandardOutputRead; public void StartSendingEvents(); public void StopSendingEvents(); } Obviously this specific scenario has to do with a console's standard output. StartSendingEvents and StopSendingEvents do what they advertise; for the purposes of this discussion, we can assume that events are always being sent without loss of generality. The class uses these two fields internally: protected readonly StringBuilder inputAccumulator = new StringBuilder(); protected readonly byte[] buffer = new byte[256]; The functionality of the class is implemented in the methods below. To get the ball rolling: public void StartSendingEvents(); { this.stopAutomation = false; this.BeginReadAsync(); } To read data out of the Stream without blocking, and also without requiring a carriage return char, BeginRead is called: protected void BeginReadAsync() { if (!this.stopAutomation) { this.StandardOutput.BaseStream.BeginRead( this.buffer, 0, this.buffer.Length, this.ReadHappened, null); } } The challenging part: BeginRead requires using a buffer. This means that when reading from the stream, it is possible that the bytes available to read ("incoming chunk") are larger than the buffer. Since we are only handing off data from the stream to a consumer, and that consumer may well have inside knowledge about the size and/or format of these chunks, I want to call event subscribers exactly once for each chunk. Otherwise the abstraction breaks down and the subscribers have to buffer the incoming data and reconstruct the chunks themselves using said knowledge. This is much less convenient to the calling code, and detracts from the usefulness of my class. Edit: There are comments below correctly stating that since the data is coming from a stream, there is absolutely nothing that the receiver can infer about the structure of the data unless it is fully prepared to parse it. What I am trying to do here is leverage the "flush the output" "structure" that the owner of the console imparts while writing on it. I am prepared to assume (better: allow my caller to have the option to assume) that the OS will pass me the data written between two flushes of the stream in exactly one piece. To this end, if the buffer is full after EndRead, we don't send its contents to subscribers immediately but instead append them to a StringBuilder. The contents of the StringBuilder are only sent back whenever there is no more to read from the stream (thus preserving the chunks). private void ReadHappened(IAsyncResult asyncResult) { var bytesRead = this.StandardOutput.BaseStream.EndRead(asyncResult); if (bytesRead == 0) { this.OnAutomationStopped(); return; } var input = this.StandardOutput.CurrentEncoding.GetString( this.buffer, 0, bytesRead); this.inputAccumulator.Append(input); if (bytesRead < this.buffer.Length) { this.OnInputRead(); // only send back if we 're sure we got it all } this.BeginReadAsync(); // continue "looping" with BeginRead } After any read which is not enough to fill the buffer, all accumulated data is sent to the subscribers: private void OnInputRead() { var handler = this.StandardOutputRead; if (handler == null) { return; } handler(this, new ConsoleOutputReadEventArgs(this.inputAccumulator.ToString())); this.inputAccumulator.Clear(); } (I know that as long as there are no subscribers the data gets accumulated forever. This is a deliberate decision). The good This scheme works almost perfectly: Async functionality without spawning any threads Very convenient to the calling code (just subscribe to an event) Maintains the "chunkiness" of the data; this allows the calling code to use inside knowledge of the data without doing any extra work Is almost agnostic to the buffer size (it will work correctly with any size buffer irrespective of the data being read) The bad That last almost is a very big one. Consider what happens when there is an incoming chunk with length exactly equal to the size of the buffer. The chunk will be read and buffered, but the event will not be triggered. This will be followed up by a BeginRead that expects to find more data belonging to the current chunk in order to send it back all in one piece, but... there will be no more data in the stream. In fact, as long as data is put into the stream in chunks with length exactly equal to the buffer size, the data will be buffered and the event will never be triggered. This scenario may be highly unlikely to occur in practice, especially since we can pick any number for the buffer size, but the problem is there. Solution? Unfortunately, after checking the available methods on FileStream and StreamReader, I can't find anything which lets me peek into the stream while also allowing async methods to be used on it. One "solution" would be to have a thread wait on a ManualResetEvent after the "buffer filled" condition is detected. If the event is not signaled (by the async callback) in a small amount of time, then more data from the stream will not be forthcoming and the data accumulated so far should be sent to subscribers. However, this introduces the need for another thread, requires thread synchronization, and is plain inelegant. Specifying a timeout for BeginRead would also suffice (call back into my code every now and then so I can check if there's data to be sent back; most of the time there will not be anything to do, so I expect the performance hit to be negligible). But it looks like timeouts are not supported in FileStream. Since I imagine that async calls with timeouts are an option in bare Win32, another approach might be to PInvoke the hell out of the problem. But this is also undesirable as it will introduce complexity and simply be a pain to code. Is there an elegant way to get around the problem? Thanks for being patient enough to read all of this.

    Read the article

  • Eclipse CDT debugger does not show console

    - by KáGé
    Hi, I'm trying to debug a C program using Eclipse CDT-s debugger and gdb on a Windows7 system, and everything seems fine, except for the console not showing up, which is bad, because my program needs input at some points from the keyboard. So how should I make Eclipse's debugger work properly? Thank you.

    Read the article

  • Microsoft SQL Server 2008 R2 Administration Cookbook - Book and eBook expected June 2011. Pre-order now!

    - by ssqa.net
    Over 85 practical recipes for administering a high-performance SQL Server 2008 R2 system. Book and eBook expected June 2011 . Pre-order now! Multi-format orders get free access on PacktLib , This practical cookbook will show you the advanced administration techniques for managing and administering a scalable and high-performance SQL Server 2008 R2 system. It contains over 85 practical, task-based, and immediately useable recipes covering a wide range of advanced administration techniques for administering...(read more)

    Read the article

  • Terminal Server 2008 - Slow File open dialog in Office 2003

    - by Chris
    I have yet another small issue that annoys me everyday in our Terminal Server environment. It seems when logging into Terminal Server users report the initial File | Open or File | Save As from within an application such as Word, Excel (2003 edition) is very slow to display the actual dialog box. The dialog appears quickly but it is whited out (sometimes displays not responding in title bar) and unresponsive, it then sits like this for about 20-30 secs before popping into life and displaying all the folders etc. The second time you go to save or open a file it loads almost instantly. Any suggestions or similar problems out there?

    Read the article

  • Mail Permissions on a File Server Resource Manager Server

    - by JohnyV
    In 2008 server the File resource manager can be set up to alert users when they go over their quota etc. This is all configured however the email notifications are not working. They have been configured but the event log shows that the user does not have permission to send to the exchange server. There isnt an option to chosse who to send the email from. Is there a way to get this to work? Thanks

    Read the article

  • Windows Server 2008 Terminal Server CALs and Remote Desktop

    - by Chalkey
    Recently we have have installed Windows Server 2008 R2 on one of our development boxes at work. We have 10 Client Access Licence's for Microsoft Windows Terminal Server 2008. I'm under the impression that these licences will entitle us to have 10 concurrent connections to Remote Desktop. At the moment we are only allowed two. Can we have a RD connection per CAL? If so - how do we configure this? Thanks!

    Read the article

  • Windows Server 2008 R2 backup includes volume with MSSQL data

    - by J F
    I'm using wbadmin to schedule image backup every night on a Windows Server 2008 R2 Standard server. Ever since installing MS-SQL 2008 Express R2, wbadmin wants to also backup the volume where the MS-SQL data files are located (L:). I'm using -allCritical to make sure bare metal restore will work. command-line: wbadmin start backup -backupTarget:\\myserver\backup$\myserver\%DATE% -include:C: -allCritical -quiet I don't want to do this, because I'm backing up MS-SQL manually elsewhere. It worked just fine only taking C: before I installed MS-SQL.

    Read the article

  • Sql Server 2008 Create Foreign Key Manually

    - by tgriffiths
    I have inherited an old database which wasn't designed very well. It is a Sql Server 2008 database which is missing quite a lot of Foreign Key relationships. Below shows two of the tables, and I am trying to manually create a FK relationship between dbo.app_status.status_id and dbo.app_additional_info.application_id I am using SQL Server Management Studio when trying to create the relationship using the query below USE myDatabase; GO ALTER TABLE dbo.app_additional_info ADD CONSTRAINT FK_AddInfo_AppStatus FOREIGN KEY (application_id) REFERENCES dbo.app_status (status_id) ON DELETE CASCADE ON UPDATE CASCADE ; GO However, I receive this error when I run the query The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_AddInfo_AppStatus". The conflict occurred in database "myDatabase", table "dbo.app_status", column 'status_id'. I am wondering if the query is failing because each table already contains approximately 130,000 records? Please help. Thanks.

    Read the article

  • Cannot install Oracle Application server

    - by ziftech
    After succesfull installation of database 10g server, I cannot run install file for application server - it closed unexpectly. How can be problem investigated? Log file contains: Checking installer requirements... Checking operating system version: must be 5.0, 5.1 or 5.2. Actual 5.2 Passed Checking monitor: must be configured to display at least 256 colors. Actual 4294967296 Passed Checking swap space: must be greater than 1535 MB. Actual 4092MB Passed Checking Temp space: must be greater than 150 MB. Actual 5083 MB Passed All installer requirements met.

    Read the article

  • Windows Server 2003 guest on Xen frequently stops responding

    - by smokris
    I'm running a Windows Server 2003 guest instance in Xen 3.x. This DomU runs fine for a day or two, then stops responding — I don't get any network response, and I can no longer connect to Xen's VNC console for this DomU. xm list shows this: Name ID Mem VCPUs State Time(s) Domain-0 0 6508 8 r----- 1161159.4 [A working Linux DomU] 1 512 1 -b---- 68711.1 [The hung Windows DomU] 5 512 1 ------ 67234.2 [Another working Linux DomU] 3 512 1 -b---- 163036.4 (What does the ------ mean? The xm manual explains what each of the six states mean, but not what no-state means.) If I xm destroy and then xm create the Windows DomU again, it boots right back up (with the Windows alert The previous system shutdown at [...] was unexpected.), and then stops responding after another day or two. I checked /var/log/xen/*.log, but no log messages are generated at the time the server stops responding. How should I proceed in troubleshooting this?

    Read the article

  • Multiplt session in win 2003

    - by Iyad
    Hi; as far i know the rdp session is 2 session maximum in win 2003, is there any way i can connect 3 remote session concurrently ? also i tried many times to connect using the console mode, but it seem like i have only 2 session 1 console and 1 using the regular terminal services rdp session ?

    Read the article

  • Windows Server 2008 constantly spamming external IP's on outbound TCP port 445

    - by RSXAdmin
    Hi Server Fault, I have a Windows Server 2008 box running as a Domain Controller. I have noticed in my Cisco ASA firewall logs that this box is continuously sending out (like a thousand requests a second) requests on TCP port 445 to external hosts. I have made an effort to deny this outbound traffic from getting on the internet (using the ASA), however I would like these requests to stop from even occurring at all. I have tried disabling TCP/IP over NetBIOS. I have even turned on Windows Advanced Firewall on the box itself to block outbound 445 but the ASA still detects this particular traffic hitting it. I have other DC's and similar type boxes which are not behaving the same way as this box. Is this normal? Is there a way to stop this spamming? Have I been infected? Thank you universe.

    Read the article

  • Hostname confusion (Ubuntu Server 10.04)

    - by letseatfood
    I have just setup Ubuntu 10.04 Server Edition. I have been following this tutorial. The DNS information seems to be setup correctly now, but I am confused about the hostname. Currently it is laughingbuddha.home. That is a name I created. Now, I am mainly not sure how to connect from another computer on my network. I basically want to be able to put PHP files on the server box and then test them via a web browser on my other computer. So, I think I digressed from my first question, but would somebody please help me figure out if the hostname is okay for doing what I need to do? Thank-you!

    Read the article

  • appengine log console extremely slow

    - by Joey
    I am using the python app engine and finding that the log console on the local development server is terribly slow. Output to this window seems to show in chunks of about 5-15 lines every second. Is that typical? I find that it's so slow that it hinders my debugging time waiting for log data to appear.

    Read the article

  • VPN server on Windows Server 2008 for a small office

    - by cmbrnt
    I'm going to refurbish the IT-infrastructure for a small organization with one single office, and I'm not sure what VPN server to use. In your opinion, would the built-in Windows Server 2008 VPN server suffice or are there any specific problems with it as opposed to, for example, OpenVPN? I'd rather run a Windows native VPN server, but if there are few (preferably free) good alternatives, I could install VMware ESXi and virtualize both Windows and an OpenVPN-server. By the way, because of a low budget this office runs a solution with only one physical server. Any advice would be great to help me grasp this field of which I'm quite a novice. Thank you!

    Read the article

< Previous Page | 41 42 43 44 45 46 47 48 49 50 51 52  | Next Page >