Oracle10gR2 indexing changes the block ?

DB: Oracle 10g R2 x864
OS: SUSE Linux x864
DR Product/Tool: Novell Platespin(http://www.novell.com/products/forge/)
We are using a block based replication tool(Platespin) to maintain a DR of our customer's Database Server(oracle 10g R2 atop SUSE Linux) using Platespin.
Block based Incremental replication is configured to run on hourly basis over a 30 Mbps dedicated fiber link.
Maximum changes of data per day(during business hours) wont exceed 300 MB on Production Database Server. During business hours Platespin replicates at least 1 GB at every replication cycle(8 to 10 GB during business hours), while during off hours it replicates 300 to 500 MB per hour(at every replication cycle). We are facing this strange issue with this box only(SUSE 10 + Oracle 10g R2), we have protected MS Exchange 2007 Server based workloads without this strange issue, i.e in case of Exchange only incremental data (delta) replicates from Production server to DR site on Platespin.
We opened a support ticket with Novell Platespin about why Volume of Incremental replication is too high, Novell/Platespin support says us that Oracle re-indexes its database for better performance, so it is possible that re-indexing causes the blocks level changes on the storage, and since Platespin works on Block level, thats why it replicates so much(even though data is not changed that much)
here is actual words of Novell Platespin support:
I think whenever Oracle database Indexing happens, it changes almost most of the Blocks of database and Platespin replicate all those Blocks.
As you know, Platespin checks the Date/Time attribute of every blocks before replication and if Date/Time attribute changes from last
replication, it considers as changed block and replicate those blocks on Platespin Appliance. So, my suggestion is just look into the Oracle
server behaviour before/after Data indexing process and do needful or do some workaround to overcome this issue.
is there anything we can do at oracle level ? is it really a database(indexing) issue ? any one can please comments/suggest on this ?
Regards,

user571635 wrote:
1 - we are doing Block based replication of entire /oracle file system, /oracle is a single file system contains every thing(binaries, database, archiving and logging is under /oracle )
2 - Archiving is enabled
3 - actually this machine is not just a Oracle 10g R2 DB server but SAP ERP is also installed and we use to check the change of data via SAP
4 - Maximum data changes per day never exceeds 300 MB
5 - Normally change of data(delta) per day is about 100 to 175 MB.
6 - Indexing is configured on SAP level(we have no idea how SAP manages indexing with Oracle)
8 - no special updates or jobs are configured
So am I right to understand that if data change is 300 MB then Archiving creates another 300 MB ? means in any case the amount of change
per day would be like 300*2=600MB, so the block based replication tool shouldn't replicate more then 600 MB per day, while in our case the block based replication tool
replicates 1 GB hourly during Business Hours, and 200-300 MB hourly during off hours.No. You need to read the concepts manual (available at http://tahiti.oracle.com among other places), and probably should read Tom Kyte's books too. As the others mentioned, you should look and see how much redo is being written. The best way for your system depends on configuration, sometimes it can be as simple as looking at the sizes and times of the files in the archive log (which are actually archived redo logs) directory.
How much redo is written depends on what is going on. How much undo is written also depends on what is going on. The log writer and database writer processes are doing the actual writing, so the data being replicated can vary from what SAP thinks is being generated. For example, if you are changing a value in a column, the redo only needs to have a change vector for the block that contains that column. But if you are copying blocks, either the copying tool has to be aware of Oracle blocks (I don't know how likely that is for your tool), or you risk having fractured blocks. User managed backup has that problem, so Oracle lets you put tablespaces in hot backup mode, which has a consequence of writing the [url http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:271815712711]entire block to redo the first time it is changed in that mode. That's why I was wondering how your block based tool deals with that. Oracle data files also have a header with system change number information in it, and blocks have similar things, and they all have to be coordinated, so that's why I question whether you are indeed doing block based transfers - Gigabytes implies either files or way lots block changes.
>
and also if Indexing is enabled, it wont change the Blocks on Storage so drastically ?Well, not knowing what is going on, we can't say. Does your storage tell you how much writing is going on? Does Oracle see lots of waits on the lgwr and/or dbwr processes? (There are command line ways to see waits, and if you are licensed for performance monitoring there are pretty graphs in dbconsole/enterprise manager).
>
Edited by: user571635 on Jun 21, 2011 8:29 AM

Similar Messages

  • How to change the "name of column" property of an text item in runtime?

    How to change the "name of column" property of an text item in runtime?
    I look the properties of items in help and found nothing about this!
    It's possible?

    Hi,
    an other solution is change the block property QUERY_DATA_SOURCE_TYPE from "Table" to "Sub-query" , than change at run time the property QUERY_DATA_SOURCE_NAME.
    First create block and add items
    The QUERY_DATA_SOURCE_NAME will be for ex. "Select 'A' as col1, 'B' AS col2, 'C' as col3 from dual"
    Set into items the column name property to col1 , col2 ...
    At run time change the query to "Select 'Z' as col1, 'X' as col2 , 'Y' as col3 from dual"
    in this way you can change the source of column value.
    Caution because if you change value type from varchar2 to date you must cast date into varchar2.
    May be that this way is valid only for view data not for insert-update, i don't remember.
    bye
    Message was edited by:
    Killernero

  • How to change the name of (Guided procedure) GP Runtime View?

    Hello all!
    At Design time in GP (Guided Procedure), I have added a runtime view at the tab "Runtime Views" named Additional Resources to a GP process.  At runtime, when the process is started,  at the left bar appears the button "Additional Resources". Is there a way to change this name? Any idea can be helpfull :).
    Kindly Regards,
    Luiza

    Hi,
    an other solution is change the block property QUERY_DATA_SOURCE_TYPE from "Table" to "Sub-query" , than change at run time the property QUERY_DATA_SOURCE_NAME.
    First create block and add items
    The QUERY_DATA_SOURCE_NAME will be for ex. "Select 'A' as col1, 'B' AS col2, 'C' as col3 from dual"
    Set into items the column name property to col1 , col2 ...
    At run time change the query to "Select 'Z' as col1, 'X' as col2 , 'Y' as col3 from dual"
    in this way you can change the source of column value.
    Caution because if you change value type from varchar2 to date you must cast date into varchar2.
    May be that this way is valid only for view data not for insert-update, i don't remember.
    bye
    Message was edited by:
    Killernero

  • How to change the status in emigall

    Hi All,
       Can any body please let me know how to change the blocking status of each object to '000' instead of the default '100'(Blocked) in emigall.
    Thanks

    Hi,
    a blocking status ending with 1, 2 or 3 does not allow further changes on object level. In order to 'unblock' the object you must execute the following steps (let's assume you change the blocking status of migration object PARTNER):
    (1) copy the migration object PARTNER either into the same migration company (with a new name) or into another migration company in order not to loose the customizing of the blocked migrationobject PARTNER. The name of the copied migration object might be PART_TEMP. A copy allways sets the blocking status of the copied migration object to 100. You can now continue working with the copied migration object for follow the steps (2) - (4) to have a migration object back with the original name.
    (2) Delete the migration object PARTNER with the blocking status 002. For this select Utilities -> Delete MigObjects and delete the migration object PARTNER
    (3) copy the copied migration object PART_TEMP back with the name of your original migration object PARTNER.
    (4) Delete the migration object PART_TEMP.
    Alternatively, if you changed the blocking status accidentially in the development system, you may change the field TEMOBS-SPERRSTATUS back to 000 with a direct update.
    Kind regards,
    Fritz
    PS: There will be a correction soon warning the user with a confirmation popup.

  • Unchanged the block Reason in FB02/FB09

    In the standard settings the payment block "A" can be removed from a document using FB02/FB09 transaction. We want that user should not be able to change the block "A" from the document using FB02/FB09, the payment block field should be greyed out. How can we do this ?

    in OB27 for your payment block key A, you need to select the appropriate check boxes and SAVE

  • Unchange the Block Reason in FB02/FB09

    In the standard settings the payment block 'A' can be removed from  a document using FB02/FB09 transaction. We want that user should not be able to change the Block 'A' from the document using FB02/FB09.  In FB02/FB09, the payment block field should be greyed out.  How can we do this ?

    I changed the 'payment block' field in the document channge rules and the blocked invoice was found not changeable using FB02. 
    After that I executed MRBR transaction (release of blocked invoices) and released the blocked invoice for posting.  But my current problem is that, when MRBR is done, it releases the entire invoice items i.e. there are certain items in the invoice which should not be paid to the vendor any time.  If I do MRBR, it releases the retention items also, which should be prevented.  How can I achieve this ?

  • Problem in JComboBox selected Index change

    hi all
    Can anyone send me the code for Loading values to JComboBox & then i want to Display Particular value for that Loaded value in JTextField.
    Ex:
    I loaded category cade for JComboBox & when JComboBox selected index change the particular category name should appear in JTextBox
    Thankz

    Hi,
    I am sending a sample program.
    Try this, if u had any problem just mail me at [email protected]
    import javax.swing.*;
    import java.util.*;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    public class SwingDemo extends JFrame implements ItemListener
         JComboBox combo;
         JTextField text;
         Properties props;
         public SwingDemo() throws Exception
              super();
              combo=new JComboBox();
              text=new JTextField();
              addItems("combodata.dat");
              setLayout(new GridLayout(2,1));
              add(combo);
              add(text);
              combo.addItemListener(this);
              setTitle("JComboBox - Demo");
              setSize(400,400);
              setVisible(true);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              pack();
         public static void main(String[] args) throws Exception
              new SwingDemo();
         public void addItems(String str) throws Exception
              FileInputStream fis=new FileInputStream(str);
              props=new Properties();
              props.load(fis);
              Enumeration e=props.propertyNames();
              while(e.hasMoreElements())
                   combo.addItem((String)e.nextElement());
         public void itemStateChanged(ItemEvent ie)
              //System.out.println(ie.getSource());
              //System.out.println((ie.getSource()==combo));
              if(ie.getSource()==combo)
                   System.out.println(combo.getSelectedItem());
                   System.out.println(props.getProperty(combo.getSelectedItem().toString()));
                   text.setText(props.getProperty(combo.getSelectedItem().toString()));
                   pack();
    For the above program I took data from a file instead of the database
    You have to create that file to execute the above program with the name combodata.dat and the values as follwos
    1=BSc
    2=BCA
    3=BA/BCom
    4=MSc(IS)
    5=MSc(Cs)
    6=MCA
    7=BE/BTech
    8=MBA
    Bye...
    Thanks & Regards,
    Santhosh Reddy Mandadi

  • When I try to upload a file it goes through the correct proceedure, but does not change the remote file i.e.Index.htm

    Hi
    I have an uploading problem to the server. The problem is when I try to upload a file it goes through the correct proceedure,
    but does not change the remote file i.e.Index.htm, or three stages1.htm.
    My Localroot folder is C:\Gods Plan Web\
    The site map layout is C:\Gods Plan Web\Index.htm
    The folder for the remote site is /public_html/
    Should the local root folder mirror the remote site, i.e./public_html/
    if this is so, what should I put into the
    (a) Local Root Folder box?
    (b) site map layout box?
    The FTP is performing well other than changing the intended file.

    You should be uploading only the contents of your local root to the public_html folder (remote root).
    The index.html you use as your site's home page needs to be in your site root. If you look at your Files window in DW, you should have something like the following...
    Site - Whatever you named your site
         index.html
         images
         pages
              page1.html
              page2.html
    If you have any folder between Site - and the index.html page, like...
    Site - Whatever you named your site
         mywebsite
              index.html
    It will upload to the public_html while still in that folder, so to find your page online, you would need to type something like...
    www.mydomain.com/mywebsite
    public_html should NOT appear within your local files and if it existed there, would cause a redundancy if uploaded. You would need to type www.yourdomain.com/public_html to see the uploaded pages.
    If you could post a screen shot of your expanded Files window while connected to the server (just connect and click the Expand button in Files, don't drill down into any of the directories), we may be able to see the issue.

  • How to update a large (over 4 million item) List(Of Byte) quickly by altering indexes contained in a Dictionary(Of Integer, Byte) where the Dictionaries keys are the indexes in the List(Of Byte) that need to be changed to the values for those indexes?

       I'm having some difficulty with transferring images from a UDP Client to a UDP Server. The issue is receiving the bytes necessary to update an original image sent from the Client to the Server and updating the Servers List(Of Byte) with the
    new bytes replacing bytes in that list. This is a simplex connection where the Sever receives and the Client sends to utilize the least amount of bandwidth for a "Remote Desktop" style application where the Server side needs image updates of whatever
    occurs on the Client desktop.
       So far I can tranfer images with no issue. The images can be be any image type (.Bmp, .Gif, .JPeg, .Png, etc). I was working with sending .JPeg's as they appear to be the smallest size image when a Bitmap is saved to a memory stream as type
    .JPeg. And then I am using GZip to compress that byte array again so it is much smaller. However on a loopback on my NIC the speed for sending a full size screen capture is not very fast as the Server updates fairly slowly unless the Clients screen capture
    Bitmap is reduced in size to about 1/3'd of the original size. Then about 12000 bytes or less are sent for each update.
       Due to .JPeg compression I suppose there is no way to get the difference in bytes between two .JPegs and only send those when something occurs on the desktop that alters the desktop screen capture image. Therefore I went to using .Bmp's as each
    .Bmp contains the same number of bytes in its array regardless of the image alterations on the desktop. So I suppose the difference in bytes from a second screen capture and an inital screen capture are what is different in the second image from the initial
    image.
       What I have done so far is save an initial Bitmap of a screen capture using a memory stream and saving as type .Bmp which takes less than 93 milliseconds for 4196406 bytes. Compressing that takes less than 118 milliseconds to 197325 bytes for
    the current windows on the desktop. When that is done PictureBox1 is updated from nothing to the captured image as the PictureBox's background image with image layout zoom and the PictureBox sized at 1/2 my screens width and 1/2 my screens height.
       Then I save a new Bitmap the same way which now contains different image information as the PictureBox is now displaying an image so its back color is no longer displayed (solid color Aqua) and the cursor has moved to a different location. The
    second Bitmap is also 4196406 in bytes and compressed it was 315473 bytes in size.
       I also just found code from this link Converting a Bitmap to a Byte Array (and Byte Array to Bitmap) which gets a byte array
    directly from a Bitmap and the size of that is 3148800 for whatever is full screen captured on my laptop. So I should be able to work with smaller byte arrays at some point.
       The issue I'm having is that once the Client sends an image of the desktop to the Server I only want to update the server with any differences occuring on the Clients desktop. So what I have done is compare the first screen captures bytes (stored
    in a List(Of Byte)) to the second screen captures bytes (stored in a List(Of Byte)) by using a For/Next for 0 to 4196405 where if a byte in the first screen captures List is not equal to a byte in the second screen captures List I add the index and byte of
    the second screen captures list to a Dictionary(Of Integer, Byte). The Dictionary then only contains the indexes and bytes that are different between the first screen capture and second screen capture. This takes about 125 milliseconds which I think is pretty
    fast for 4196406 byte comparison using a For/Next and adding all the different bytes and indexes for each byte to a Dictionary.
        The difference in Bytes between the inital screen capture and the second screen capture is 242587 as an example which changes of course. For that amount of bytes the Dictionary contains 242587 integers as indexes and 242587 bytes as different
    bytes totaling 485174 bytes for both arrays (keys, values).  Compressed the indexes go from 242587 to 43489 bytes and the values go from 242587 to 34982 bytes. Which means I will have to send 78, 481 bytes from the Client to the Server to update the display
    on the server. Quite smaller than the original 4196406 bytes of the second Bitmap saved to type .Bmp or the compressed size of that array which was 315473 bytes. Plus a few bytes I add as overhead so the server knows when an image array ends and how many packets
    were sent for the array so it can discard complete arrays if necessary since UDP is lossfull although probably not so much in current networks like it may originally have been when the internet started.
        In reality the data from the Client to the Server will mostly be the cursor as it moves and updating the Server image with only a few hundred bytes I would imagine at a time. Or when the cursor selects a Button for example and the Buttons
    color changes causing those differences in the original screen capture.
       But the problem is if I send the Dictionaries Indexes and Bytes to the Server then I need to update the original Bitmap List(Of Byte) on the server by removing the Bytes in the received informations Index locations array from the Servers Bitmap
    List(Of Byte) and replacing those Bytes with the Bytes in the received informations Byte array. This takes so long using a For/Next for however many indexes are in the received informations Index array to update the Bitmap List(Of Byte) on the server using
    "Bmp1Bytes.RemoveAt(Index As Integer)" followed by "Bmp1Bytes.Insert(Index As Integer, Item As Byte)" in the For/Next.
        I've tried various For/Next statements including using a new List(Of Byte) with If statements so If the the integer for the For/Next ='s the Key in a Dictionary(Of Integer, Byte) using a Counter to provide the Dictionaries Key value then
    the Dictionaries byte value will be added to the List(Of Byte) and the counter will increas by one Else the List(Of Byte) adds the original "Bmp1Bytes" byte at that index to the new List(Of Byte). This takes forever also.
       I also tried the same For/Next adding to a new Dictionary(Of Integer, Byte) but that takes forever too.
       I think I could use RemoveRange and AddRange to speed things up. But I don't know how to retrieve a contiguous range of indexes in the received indexes that need to be updated in the servers "Bmp1Bytes" List(Of Byte) from the received
    array of indexes and bytes which are in a Dictionary(Of Integer, Byte).  But I believe this would even be slower than some realistic method for replacing all Bytes in a List(Of Byte) when I have the indexes that need to be replaced and the bytes to replace
    them with.
       Even if I just used AddRange on a new List(Of Byte) to add ranges of bytes from the original "Bmp1Bytes" and the changes from the Dictionary(Of Integer, Byte) I think this would be rather slow. Although I don't know how to do that
    by getting contiguous ranges of indexes from the Dictionaries keys.
       So I was wondering if there is some method perhaps using Linq or IEnumerable which I've been unable to figure anything out which could do this.
       I do have some copy and pasted code which I don't understand how it works that I am using which I would guess could be altered for doing something like this but I can't find information that provides how the code works.  Or even if I did
    maybe I can't understand it. Like the code below which is extremely fast.
       Dim strArray() As String = Array.ConvertAll(Of Integer, String)(BmpComparisonDict.Keys.ToArray, Function(x) x.ToString())
    La vida loca

    Monkeyboy,
    That was quite a bit to read, but still a bit unclear. Could you put a specific list of goals/questions, asked in the smallest possible form?
    It seems like either you're making a program that monitors activity on your computer, or you're writing some kind of remote pc app.
    When you do get your bytes from using lockbits, keep in mind all the files header info would be lost. I think retaining the header info is worth the extra bytes.
    The other, thing: I'm not sure if you're taking 32bpp screen shots, but also keep in mind that the "whole desktop" is the final destination for blended graphics, if that makes sense. What I mean is that there is no need to capture an "alpha"
    channel for a desktop screenshot, as alpha would always be 255, this could save you 1 byte per pixel captured... Theres nothing "behind" the desktop, therefore no alpha, and every window shown above the desktop is already blended. I suggest using
    24Bpp for a full screen capture.
    Your X,Y information for the mouse could be stored as UINT16, this would save you a measly 2 bytes per location update/save.
    When you update your byte arrays, maybe you can turn the array into a stream and write to whatever index, however many bytes, that should prevent a "Shift" of bytes, and instead overwrite any bytes that "get in the way".
    ex
    Dim example As String = "This is an example."
    Dim insertString As String = "was"
    Dim insertBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(insertString)
    Dim bytes As Byte() = System.Text.Encoding.ASCII.GetBytes(example)
    Dim modifiedBytes As Byte() = {}
    Using ms As New System.IO.MemoryStream(bytes)
    ms.Position = 5
    ms.Write(insertBytes, 0, 3)
    modifiedBytes = ms.ToArray
    End Using
    Dim newString As String = System.Text.Encoding.ASCII.GetString(modifiedBytes)
    'Notice how below there isn't the word "is" anymore, and that there isn't a
    'space.
    'This demonstrates that you overwrite existing data, versus shifting everything to
    'the right.
    'Returns: This wasan example.
    MsgBox(newString)
    “If you want something you've never had, you need to do something you've never done.”
    Don't forget to mark
    helpful posts and answers
    ! Answer an interesting question? Write a
    new article
    about it! My Articles
    *This post does not reflect the opinion of Microsoft, or its employees.
    Well it's too much to read. I was really tired when I wrote it. Even the below is too much to read but perhaps gets the point across of what I would like to do which I think
    Joel Engineer may have answered but I'm not sure. As I'm still too tired to understand that yet and research what he said in order to figure it out yet.
    But maybe the code below can provide the concept of the operation with the comments in it. But seeing as how I'm still tired it may be confused.
    Option Strict On
    Imports System.Windows.Forms
    Imports System.IO
    Imports System.IO.Compression
    Imports System.Drawing.Imaging
    Imports System.Runtime.InteropServices
    Public Class Form1
    Dim Bmp1Bytes As New List(Of Byte)
    Dim Bmp1BytesCompressed As New List(Of Byte)
    Dim Bmp2Bytes As New List(Of Byte)
    Dim BmpComparisonDict As New Dictionary(Of Integer, Byte)
    Dim BmpDifferenceIndexesCompressed As New List(Of Byte)
    Dim BmpDifferenceBytesCompressed As New List(Of Byte)
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    SomeSub()
    End Sub
    Private Sub SomeSub()
    ' Pretend this code is in UDP Client app. A screen capture is performed of the desktop. Takes about 90 milliseconds.
    Bmp1Bytes.Clear()
    Using BMP1 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP1)
    g1.CopyFromScreen(0, 0, 0, 0, BMP1.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP1.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp1Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    Bmp1BytesCompressed.AddRange(Compress(Bmp1Bytes.ToArray))
    ' UDP Client app sends Bmp1BytesCompressed.ToArray to UDP Server which is the entire image of the desktop that the UDP
    ' Client is on. This image takes awhile to send since compressed it is about 177000 bytes from over 4000000 bytes.
    ' I will be using different code just to get the bytes from the actual Bitmap in the future. That is not important for now.
    ' Pretend the UDP Server has received the bytes, decompressed the array received into a List(Of Byte) and is displaying
    ' the image of the UDP Clients desktop in a PictureBox.
    ' Now the image on the UDP Clients desktop changes due to the mouse cursor moving as an example. Therefore a new Bitmap
    ' is created from a screen capture. This takes about 90 milliseconds.
    Bmp2Bytes.Clear()
    Using BMP2 As New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
    Using g1 As Graphics = Graphics.FromImage(BMP2)
    g1.CopyFromScreen(0, 0, 0, 0, BMP2.Size)
    Cursor.Draw(g1, New Rectangle(Cursor.Position.X, Cursor.Position.Y, Cursor.Size.Width, Cursor.Size.Height))
    Using MS As New MemoryStream
    BMP2.Save(MS, System.Drawing.Imaging.ImageFormat.Bmp)
    Bmp2Bytes.AddRange(MS.ToArray)
    End Using
    End Using
    End Using
    ' Now I have the original images bytes in Bmp1Bytes and the new images bytes in Bmp2Bytes on the UDP Client. But I don't
    ' want to send all of the bytes in Bmp2Bytes to the UDP Server. Just the indexes of and the bytes that are different in
    ' Bmp2Bytes from Bmp1Bytes.
    ' This takes less than 100 milliseconds for what I've tested so far where over 500000 bytes in Bmp2Bytes are different
    ' than the bytes in Bmp1Bytes. Usually that amount would be much less. But during testing I was displaying the image
    ' from Bmp1 bytes in a PictureBox so a large amount of data would change between the first screen shot, the PictureBox
    ' then displaying an image on the same PC and then the second screen shot.
    BmpComparisonDict.Clear()
    For i = 0 To Bmp1Bytes.Count - 1
    If Bmp1Bytes(i) <> Bmp2Bytes(i) Then
    BmpComparisonDict.Add(i, Bmp2Bytes(i))
    End If
    Next
    ' So now I have all the difference bytes and their indexes from Bmp2Bytes in the BmpComparisonDict. So I compress
    ' the indexes into on List and the Bytes into another List.
    BmpDifferenceIndexesCompressed.Clear()
    BmpDifferenceBytesCompressed.Clear()
    BmpDifferenceIndexesCompressed.AddRange(Compress(BmpComparisonDict.Keys.SelectMany(Function(d) BitConverter.GetBytes(d)).ToArray()))
    BmpDifferenceBytesCompressed.AddRange(Compress(BmpComparisonDict.Values.ToArray))
    ' Now pretend the UDP Client has sent both those arrays to the UDP Server which has added both decompressed arrays
    ' to a Dictionary(Of Integer, Byte). And the server has the original image decompressed bytes received in a List
    ' called Bmp1Bytes also.
    ' This is where I am stuck. The UDP Server has the Dictionary. That part was fast. However there is no
    ' fast method I have found for creating a new List(Of Byte) where bytes in the originally received List(Of Byte) that
    ' do not have to be altered are placed into a new List(Of Byte) except for the indexes listed in the
    ' Dictionary(Of Integer, Byte) that need to be placed into the appropriate index locations of the new List(Of Byte).
    ' The below example for doing so is exceptionally slow. Pretend UpdateDictionary has all of the decompressed indexes
    ' and bytes received by the UDP Server for the update contained within it.
    Dim UpdateDictionary As New Dictionary(Of Integer, Byte)
    Dim UpdatedBytes As New List(Of Byte)
    Dim Counter As Integer = 0
    For i = 0 To Bmp1Bytes.Count - 1
    If i = UpdateDictionary.Keys(Counter) Then ' Provides the index contained in the Keys for the Dictionary
    UpdatedBytes.Add(UpdateDictionary.Values(Counter))
    Counter += 1
    If Counter > UpdateDictionary.Count - 1 Then Counter = 0
    Else
    UpdatedBytes.Add(Bmp1Bytes(i))
    End If
    Next
    ' So what I'm trying to do is find an extremely fast method for performing something similar to what the
    ' above operation performs.
    End Sub
    Private Function Compress(BytesToCompress() As Byte) As List(Of Byte)
    Dim BytesCompressed As New List(Of Byte)
    Using compressedStream = New MemoryStream()
    Using zipStream = New GZipStream(compressedStream, CompressionMode.Compress)
    zipStream.Write(BytesToCompress, 0, BytesToCompress.Count)
    zipStream.Close()
    BytesCompressed.AddRange(compressedStream.ToArray)
    End Using
    End Using
    Return BytesCompressed
    End Function
    Private Function Decompress(BytesToDecompress() As Byte) As List(Of Byte)
    Dim BytesDecompressed As New List(Of Byte)
    Using DecompressedStream = New MemoryStream()
    Using zipStream = New GZipStream(DecompressedStream, CompressionMode.Decompress)
    zipStream.Write(BytesToDecompress, 0, BytesToDecompress.Count)
    zipStream.Close()
    BytesDecompressed.AddRange(DecompressedStream.ToArray)
    End Using
    End Using
    Return BytesDecompressed
    End Function
    End Class
    La vida loca

  • I am using a work laptop and have the same problem. When I try to change the "configure proxy", they only available option is "use this proxy server for all protocols". Could it be that my system administrator blocked me from changing it since they don'

    I am using a work laptop and have the same problem. When I try to change the "configure proxy", they only available option is "use this proxy server for all protocols". Could it be that my system administrator blocked me from changing it since they don't want us to use Firefox.
    == User Agent ==
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.4; FNGP_SYS)

    Start Firefox in [[Safe Mode]] to check if one of your add-ons is causing your problem (switch to the DEFAULT theme: Tools > Add-ons > Themes).
    See [[Troubleshooting extensions and themes]] and [[Troubleshooting plugins]]
    If it does work in Safe-mode then disable all your extensions and then try to find which is causing it by enabling one at a time until the problem reappears.
    You can use "Disable all add-ons" on the ''Safe mode'' start window.
    You have to close and restart Firefox after each change via "File > Exit" (on Mac: "Firefox > Quit")

  • How to change the color in "blocks" effect

    Hi,
    I've got a problem with Motion.
    I use a "behaviour" effect on my text that is called "blocks".
    When I set parameters to default, I see a blue effect with some red blocks in backgroud.
    I want to turn this effect into a green effect.
    The problem is that when I change the color into green, there is still a strange orange color on some blocks.
    I've added all the color parameters (face, shadow...)that I thought it could be due to but nothing changes. I still have this strange color on some blocks.
    The strangest thing is that it sometimes becomes ok when I make the changes but when I save and re-open my file in FCP or Motion, it isn't ok.
    Has anyone already used this effect and seen that problem?
    Thanks for your help...
    Sand
      Mac OS X (10.4)  
      Mac OS X (10.4)  

    Text behaviors work by sequencing the Text's parameters.
    Try changing the color of your text's outline.
    Select the Text tab in the Inspector
    Go to the Style sub tab
    change the Outline color to green
    Hope that helps.

  • How to change  delivery  block for all item in the schedule lines via va32

    dear sap expert:
    i onle can  change delivery block for one  sales order item in the schedule line  every times via va32,it will take so many time because there are hundreds of item  in a sceduling agrrement. how to change all the item  one times.
    please give me a way to resovle the problem.
    best regards.

    dear:
      the fast change function cann't resovle the problem,i first double click the item of schedule agreement  ,then select the schedule lines option, finally in the delivery block input the reason of bolck.
    best regards.

  • I have multiple devices with the same cerificate, once I have a an exception for one, FF denys access to the others. I cannot change the certificates, I need to stop FF blocking them.

    I have multiple devices with the same cerificate, once I have an exception for one, FF denys access to the others. I cannot change the certificates, I need to stop FF blocking them.
    == This happened ==
    Every time Firefox opened
    == I attempt to access a web front end on an IBM SVC device

    You can't use the same certificate more than once.
    See also [[Certificate contains the same serial number as another certificate]]

  • Can we change the fields of database unique index in a customised table?

    Hi all..
    I want to know that can we create or change or delete the database unique index of a customized table?
    In my case, there is a customised table with 4 primary keys with all the records to be maintained thru transaction code SM30.
    There is database unique index maintained for this table which has 2 fields. These 2 fields are out of the 4 primary fields of the table.I hope I have made myself clear!
    Now when I am trying to insert a record in the table it give me a short dump.( It says duplication of records is not allowed)
    The reason being that the new record that I am trying to insert in the database table has those 2 fields for which the unique index is maintained is the same as an already existing record.And the other two fields are different from the already existing record.So overall the combination of the 4 primary fields is different.
    Please tell me how shall I proceed now?
    I also tried to change the Unique index but it is asking me some kind of authrization(You are not authorized to make changes (authorization object S_DEVELOP)).Also I am not sure whether changing the unique index is feasible or not.?
    Thanks.

    hi
    I think you will not be able to do unique indexing withou the help of primary keys,so use all the primary keys into the table field selections  and and then create indexing otherwise dupilication of keys can occur. if you are not able to keep the primary keys then go for non unique key indexing,where you have to add the client field and the any keys of your wish.

  • Firefox is not working - I believe it is because a McAfee pop-up asked if I wanted to allow something, and instead of 'allow always' I clicked 'block.' A year or so ago I did this (and forgot) and it changed the settings and I also lost MF access.

    Everything else about my computer works fine, but I get a small
    pop-up window in the bottom right asking if I want to allow some
    kind of program access, and the options are 'allow always',
    'allow once', or 'block.' I forgot that I lost access to MF and
    had to call someone to help me change the settings a yr or so
    ago. But I believe it was this same issue - when I re-booted the
    settings took effect. What must I change in my settings? I
    already deleted my MF profile.

    Has any had you try a reset yet? Sometimes the WiFi &amp; Cellular anntennas get wacky.
    Hold Sleep/Wak &amp; Home buttons until the screen goes dark and you see the Apple logo

Maybe you are looking for

  • How to add  source message filed value in dynamic generated xml file ??

    Hi Friends.. in my idoc to file.... i want to add one of my source idoc fields value in the dynamic generated file.... filename _field.xml... so how to get that filed value in java section ... i am not using that field in mapping.. please help me...

  • BAPI_POSRVAPS_SAVEMULTI3  and  orders from vendor

    Hi, I have some code which updates an SNP order using BAPI_POSRVAPS_SAVEMULTI3.  It seems to work ok for normal STRs (where I specify both RECEIPTS and REQUIRMENTS tables),  however I have run into a problem when it needs to change an order from a Ve

  • Dimension Current Flag and Last Update date not updated - SLD issue!

    Hi. ODI is running pretty well now. I have created several interfaces from flats, multi database tables, but still have to test the services and cdc, etc... later I will do this. I am having a small issue here when dealing with Slowly Changing Dimens

  • Load Balancing FTP Server thru CSM using a single Client IP

    Hello, We have a need to load balance 3 FTP servers. These servers are reached only from a single client IP which is a database server. The FTP method that is being used is currently passive. Our configuration is currently unidirectional, ie, the FTP

  • Not able to start Oracle Intelligent Agent

    Hi to all, I am not able to start the Oracle Intelligent Agent. I am getting the following error. bash-2.05$ agentctl start DBSNMP for Solaris: Version 9.2.0.3.0 - Production on 13-OCT-2008 10:43:56 Copyright (c) 2003 Oracle Corporation. All rights r