Friday, March 30, 2012
Merge or Transaction Replication?
fronted by an Access ADP project. I'm having problems with security (the old
runtime 17), but in other small tests it seems the system is very slow. I
guess I'm not really that surprised.
I am considering using replication to set up a second server. Our workflow
is fairly simple. There are many tables that are effectively read-only, and
could be replicated using any method. There is one table that will see
updates from the remote site, as well as a trigger that fires when that table
is updated (keeping an audit log).
Can anyone suggest the best method for this case? It would seem that Merge
replication would be fine, but the documentation suggests I will have
problems with ACID on merge, and little else. Transactional sounds fine,
there's only about 5 tables that see updates on any sort of daily basis, and
only the one orders table that really gets hit.
However that table uses a auto-incrementing pkey. Will that even work?
MauryFor uni-directional data flow transactional replication will work best.
Identity values will be assigned on the publisher/data source. If you are
replicating to a table which has the identity property on this column you
will need to use the not for replication switch. By default Transactional
replication will not put the identity property on columns on the
subscriber/data destination.
Merge is intended for clients which are frequently offline and when you need
bi-directional replication. With careful partitioning you will avoid the
collisions which will break the d part of ACID.
If you need bi-directional replication you can use bi=-directional
transactional replication.
--
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Maury Markowitz" <MauryMarkowitz@.discussions.microsoft.com> wrote in
message news:6016EF86-8F9A-4D0D-9C83-CF08AB06107A@.microsoft.com...
> I have a branch office I would like to connect to our database, which is
> fronted by an Access ADP project. I'm having problems with security (the
old
> runtime 17), but in other small tests it seems the system is very slow. I
> guess I'm not really that surprised.
> I am considering using replication to set up a second server. Our workflow
> is fairly simple. There are many tables that are effectively read-only,
and
> could be replicated using any method. There is one table that will see
> updates from the remote site, as well as a trigger that fires when that
table
> is updated (keeping an audit log).
> Can anyone suggest the best method for this case? It would seem that Merge
> replication would be fine, but the documentation suggests I will have
> problems with ACID on merge, and little else. Transactional sounds fine,
> there's only about 5 tables that see updates on any sort of daily basis,
and
> only the one orders table that really gets hit.
> However that table uses a auto-incrementing pkey. Will that even work?
> Maury|||"Hilary Cotter" wrote:
> For uni-directional data flow transactional replication will work best.
No good here, one of the tables WILL be bi-directional.
> Identity values will be assigned on the publisher/data source.
This is a bit confusing. In my case I am sharing one updating table. If I
turn this off, does this mean that a new row will always be assigned a
"local" identity, one that might be different on the remote machine?
Maurysql
Merge or Transaction Replication?
fronted by an Access ADP project. I'm having problems with security (the old
runtime 17), but in other small tests it seems the system is very slow. I
guess I'm not really that surprised.
I am considering using replication to set up a second server. Our workflow
is fairly simple. There are many tables that are effectively read-only, and
could be replicated using any method. There is one table that will see
updates from the remote site, as well as a trigger that fires when that table
is updated (keeping an audit log).
Can anyone suggest the best method for this case? It would seem that Merge
replication would be fine, but the documentation suggests I will have
problems with ACID on merge, and little else. Transactional sounds fine,
there's only about 5 tables that see updates on any sort of daily basis, and
only the one orders table that really gets hit.
However that table uses a auto-incrementing pkey. Will that even work?
Maury
For uni-directional data flow transactional replication will work best.
Identity values will be assigned on the publisher/data source. If you are
replicating to a table which has the identity property on this column you
will need to use the not for replication switch. By default Transactional
replication will not put the identity property on columns on the
subscriber/data destination.
Merge is intended for clients which are frequently offline and when you need
bi-directional replication. With careful partitioning you will avoid the
collisions which will break the d part of ACID.
If you need bi-directional replication you can use bi=-directional
transactional replication.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Maury Markowitz" <MauryMarkowitz@.discussions.microsoft.com> wrote in
message news:6016EF86-8F9A-4D0D-9C83-CF08AB06107A@.microsoft.com...
> I have a branch office I would like to connect to our database, which is
> fronted by an Access ADP project. I'm having problems with security (the
old
> runtime 17), but in other small tests it seems the system is very slow. I
> guess I'm not really that surprised.
> I am considering using replication to set up a second server. Our workflow
> is fairly simple. There are many tables that are effectively read-only,
and
> could be replicated using any method. There is one table that will see
> updates from the remote site, as well as a trigger that fires when that
table
> is updated (keeping an audit log).
> Can anyone suggest the best method for this case? It would seem that Merge
> replication would be fine, but the documentation suggests I will have
> problems with ACID on merge, and little else. Transactional sounds fine,
> there's only about 5 tables that see updates on any sort of daily basis,
and
> only the one orders table that really gets hit.
> However that table uses a auto-incrementing pkey. Will that even work?
> Maury
|||"Hilary Cotter" wrote:
> For uni-directional data flow transactional replication will work best.
No good here, one of the tables WILL be bi-directional.
> Identity values will be assigned on the publisher/data source.
This is a bit confusing. In my case I am sharing one updating table. If I
turn this off, does this mean that a new row will always be assigned a
"local" identity, one that might be different on the remote machine?
Maury
Merge or Transaction Replication?
fronted by an Access ADP project. I'm having problems with security (the old
runtime 17), but in other small tests it seems the system is very slow. I
guess I'm not really that surprised.
I am considering using replication to set up a second server. Our workflow
is fairly simple. There are many tables that are effectively read-only, and
could be replicated using any method. There is one table that will see
updates from the remote site, as well as a trigger that fires when that tabl
e
is updated (keeping an audit log).
Can anyone suggest the best method for this case? It would seem that Merge
replication would be fine, but the documentation suggests I will have
problems with ACID on merge, and little else. Transactional sounds fine,
there's only about 5 tables that see updates on any sort of daily basis, and
only the one orders table that really gets hit.
However that table uses a auto-incrementing pkey. Will that even work?
MauryFor uni-directional data flow transactional replication will work best.
Identity values will be assigned on the publisher/data source. If you are
replicating to a table which has the identity property on this column you
will need to use the not for replication switch. By default Transactional
replication will not put the identity property on columns on the
subscriber/data destination.
Merge is intended for clients which are frequently offline and when you need
bi-directional replication. With careful partitioning you will avoid the
collisions which will break the d part of ACID.
If you need bi-directional replication you can use bi=-directional
transactional replication.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Maury Markowitz" <MauryMarkowitz@.discussions.microsoft.com> wrote in
message news:6016EF86-8F9A-4D0D-9C83-CF08AB06107A@.microsoft.com...
> I have a branch office I would like to connect to our database, which is
> fronted by an Access ADP project. I'm having problems with security (the
old
> runtime 17), but in other small tests it seems the system is very slow. I
> guess I'm not really that surprised.
> I am considering using replication to set up a second server. Our workflow
> is fairly simple. There are many tables that are effectively read-only,
and
> could be replicated using any method. There is one table that will see
> updates from the remote site, as well as a trigger that fires when that
table
> is updated (keeping an audit log).
> Can anyone suggest the best method for this case? It would seem that Merge
> replication would be fine, but the documentation suggests I will have
> problems with ACID on merge, and little else. Transactional sounds fine,
> there's only about 5 tables that see updates on any sort of daily basis,
and
> only the one orders table that really gets hit.
> However that table uses a auto-incrementing pkey. Will that even work?
> Maury|||"Hilary Cotter" wrote:
> For uni-directional data flow transactional replication will work best.
No good here, one of the tables WILL be bi-directional.
> Identity values will be assigned on the publisher/data source.
This is a bit confusing. In my case I am sharing one updating table. If I
turn this off, does this mean that a new row will always be assigned a
"local" identity, one that might be different on the remote machine?
Maury
Monday, March 26, 2012
Merge Agent fails to connect to mdb
Here is a challenge - and I'm loosing ...
I'm trying to get a push subscription to work to an Access mdb file from
SQLServer.
I get the following message when running the Merge Agent:
'S:\network\share\access.mdb' is not a valid path. Make sure that the path
name is spelled correctly and that you are connected to the server on which
the file resides.
(Source: MS.Jet.4.0 (Agent); Error number: -1023)
I'm successfully using the subscription's Linked Server definition via QA.
So I conclude that the .mdb path is valid.
I've successfully test the push replication with the .mdb file as a local
file.
My guess is that it is a security context issue for the Merge Agent -
however I don't know how to correct it!!!
I've checked the Agent definition - and it is running with the owner set to
the local admin account.
Both my SQLServer Instance and Agent service use the same local
administrator account (not LocalSystem). This account has got access to the
share and can open the mdb file via Access).
Environment:
SQLServer PE V7.0 with SP3a
Windows 2003 Server with SP1
Hope that someone has been here, and got the t-shirt...
Peter
Is S a network drive? If so you have to access it as a UNC. Secondly, IIRC
everytime the agent runs it creates a new copy of the database,
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
Looking for a FAQ on Indexing Services/SQL FTS
http://www.indexserverfaq.com
"Peter" <Peter@.discussions.microsoft.com> wrote in message
news:D872C520-1D22-4397-8A55-7E0A02DA4D26@.microsoft.com...
> Hi all,
> Here is a challenge - and I'm loosing ...
> I'm trying to get a push subscription to work to an Access mdb file from
> SQLServer.
> I get the following message when running the Merge Agent:
> 'S:\network\share\access.mdb' is not a valid path. Make sure that the
> path
> name is spelled correctly and that you are connected to the server on
> which
> the file resides.
> (Source: MS.Jet.4.0 (Agent); Error number: -1023)
> I'm successfully using the subscription's Linked Server definition via QA.
> So I conclude that the .mdb path is valid.
> I've successfully test the push replication with the .mdb file as a local
> file.
> My guess is that it is a security context issue for the Merge Agent -
> however I don't know how to correct it!!!
> I've checked the Agent definition - and it is running with the owner set
> to
> the local admin account.
> Both my SQLServer Instance and Agent service use the same local
> administrator account (not LocalSystem). This account has got access to
> the
> share and can open the mdb file via Access).
> Environment:
> SQLServer PE V7.0 with SP3a
> Windows 2003 Server with SP1
> Hope that someone has been here, and got the t-shirt...
> --
> Peter
|||Hi Hilary,
Yes S is a mapped network drive.
I have created a new Linked Server def using the UNC reference to the mdb.
Again the linked server def works fine when used in Query Analyser to select
data from the mdb.
However, I again get the msg below in my Merge Agent when using the Linked
Server def in a push subscription:
'\\server\path1\path2\access.mdb' is not a valid path. Make sure that the
path name is spelled correctly and that you are connected to the server on
which the file resides.
(Source: MS.Jet.4.0 (Agent); Error number: -1023)
------
Any ideas?
Curious about your second comment about creating a new copy of the database
everytime the agent runs - I did not see this when running the agent against
my local test copy of the mdb.
Regards,
Peter
Peter
"Hilary Cotter" wrote:
> Is S a network drive? If so you have to access it as a UNC. Secondly, IIRC
> everytime the agent runs it creates a new copy of the database,
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
> Looking for a FAQ on Indexing Services/SQL FTS
> http://www.indexserverfaq.com
> "Peter" <Peter@.discussions.microsoft.com> wrote in message
> news:D872C520-1D22-4397-8A55-7E0A02DA4D26@.microsoft.com...
>
>
Friday, March 9, 2012
Memory Tab; SQL Server Properties (Accessing)
- I cannot access the Memory Tab to change the memory settings.
- I receive the following error message: Error 8651: Could not perform the
requested operation because the minimum query memory is not available.
Decrease the configured value for the 'min memory per query' server
configuration option.
- The maximum memory was accidentily set to 0 in the SQL Server Properties
Memory Tab.
Is there another way to access and change the maximum memory setting other
than through Enterprise Manager?
Thank you.
BillSee sp_configure in SQL Server Books Online.
--
HTH,
Vyas, MVP (SQL Server)
SQL Server Articles and Code Samples @. http://vyaskn.tripod.com/
"BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
Hi,
- I cannot access the Memory Tab to change the memory settings.
- I receive the following error message: Error 8651: Could not perform the
requested operation because the minimum query memory is not available.
Decrease the configured value for the 'min memory per query' server
configuration option.
- The maximum memory was accidentily set to 0 in the SQL Server Properties
Memory Tab.
Is there another way to access and change the maximum memory setting other
than through Enterprise Manager?
Thank you.
Bill|||Check out sp_configure in BooksOnLine.
--
Andrew J. Kelly SQL MVP
"BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
> Hi,
> - I cannot access the Memory Tab to change the memory settings.
> - I receive the following error message: Error 8651: Could not perform the
> requested operation because the minimum query memory is not available.
> Decrease the configured value for the 'min memory per query' server
> configuration option.
> - The maximum memory was accidentily set to 0 in the SQL Server Properties
> Memory Tab.
> Is there another way to access and change the maximum memory setting other
> than through Enterprise Manager?
> Thank you.
> Bill
>|||Hi Narayana,
Thank you for the suggestion.
I entered the following in the query analyzer, and was then able to access
the memory tab again to make the correction to max memory:
sp_configure 'max server memory', 2147483647
go
reconfigure
go
Thank you!
Bill
"Narayana Vyas Kondreddi" wrote:
> See sp_configure in SQL Server Books Online.
> --
> HTH,
> Vyas, MVP (SQL Server)
> SQL Server Articles and Code Samples @. http://vyaskn.tripod.com/
>
> "BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
> news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
> Hi,
> - I cannot access the Memory Tab to change the memory settings.
> - I receive the following error message: Error 8651: Could not perform the
> requested operation because the minimum query memory is not available.
> Decrease the configured value for the 'min memory per query' server
> configuration option.
> - The maximum memory was accidentily set to 0 in the SQL Server Properties
> Memory Tab.
> Is there another way to access and change the maximum memory setting other
> than through Enterprise Manager?
> Thank you.
> Bill
>
>|||Hi Andrew,
Thank you for the suggestion.
I entered the following in the query analyzer, and was then able to access
the memory tab again to make the correction to max memory:
sp_configure 'max server memory', 2147483647
go
reconfigure
go
Thank you!
Bill
"Andrew J. Kelly" wrote:
> Check out sp_configure in BooksOnLine.
> --
> Andrew J. Kelly SQL MVP
>
> "BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
> news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
> > Hi,
> > - I cannot access the Memory Tab to change the memory settings.
> > - I receive the following error message: Error 8651: Could not perform the
> > requested operation because the minimum query memory is not available.
> > Decrease the configured value for the 'min memory per query' server
> > configuration option.
> > - The maximum memory was accidentily set to 0 in the SQL Server Properties
> > Memory Tab.
> >
> > Is there another way to access and change the maximum memory setting other
> > than through Enterprise Manager?
> >
> > Thank you.
> > Bill
> >
>
>
Memory Tab; SQL Server Properties (Accessing)
- I cannot access the Memory Tab to change the memory settings.
- I receive the following error message: Error 8651: Could not perform the
requested operation because the minimum query memory is not available.
Decrease the configured value for the 'min memory per query' server
configuration option.
- The maximum memory was accidentily set to 0 in the SQL Server Properties
Memory Tab.
Is there another way to access and change the maximum memory setting other
than through Enterprise Manager?
Thank you.
Bill
See sp_configure in SQL Server Books Online.
HTH,
Vyas, MVP (SQL Server)
SQL Server Articles and Code Samples @. http://vyaskn.tripod.com/
"BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
Hi,
- I cannot access the Memory Tab to change the memory settings.
- I receive the following error message: Error 8651: Could not perform the
requested operation because the minimum query memory is not available.
Decrease the configured value for the 'min memory per query' server
configuration option.
- The maximum memory was accidentily set to 0 in the SQL Server Properties
Memory Tab.
Is there another way to access and change the maximum memory setting other
than through Enterprise Manager?
Thank you.
Bill
|||Check out sp_configure in BooksOnLine.
Andrew J. Kelly SQL MVP
"BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
> Hi,
> - I cannot access the Memory Tab to change the memory settings.
> - I receive the following error message: Error 8651: Could not perform the
> requested operation because the minimum query memory is not available.
> Decrease the configured value for the 'min memory per query' server
> configuration option.
> - The maximum memory was accidentily set to 0 in the SQL Server Properties
> Memory Tab.
> Is there another way to access and change the maximum memory setting other
> than through Enterprise Manager?
> Thank you.
> Bill
>
|||Hi Narayana,
Thank you for the suggestion.
I entered the following in the query analyzer, and was then able to access
the memory tab again to make the correction to max memory:
sp_configure 'max server memory', 2147483647
go
reconfigure
go
Thank you!
Bill
"Narayana Vyas Kondreddi" wrote:
> See sp_configure in SQL Server Books Online.
> --
> HTH,
> Vyas, MVP (SQL Server)
> SQL Server Articles and Code Samples @. http://vyaskn.tripod.com/
>
> "BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
> news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
> Hi,
> - I cannot access the Memory Tab to change the memory settings.
> - I receive the following error message: Error 8651: Could not perform the
> requested operation because the minimum query memory is not available.
> Decrease the configured value for the 'min memory per query' server
> configuration option.
> - The maximum memory was accidentily set to 0 in the SQL Server Properties
> Memory Tab.
> Is there another way to access and change the maximum memory setting other
> than through Enterprise Manager?
> Thank you.
> Bill
>
>
|||Hi Andrew,
Thank you for the suggestion.
I entered the following in the query analyzer, and was then able to access
the memory tab again to make the correction to max memory:
sp_configure 'max server memory', 2147483647
go
reconfigure
go
Thank you!
Bill
"Andrew J. Kelly" wrote:
> Check out sp_configure in BooksOnLine.
> --
> Andrew J. Kelly SQL MVP
>
> "BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
> news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
>
>
Memory Tab; SQL Server Properties (Accessing)
- I cannot access the Memory Tab to change the memory settings.
- I receive the following error message: Error 8651: Could not perform the
requested operation because the minimum query memory is not available.
Decrease the configured value for the 'min memory per query' server
configuration option.
- The maximum memory was accidentily set to 0 in the SQL Server Properties
Memory Tab.
Is there another way to access and change the maximum memory setting other
than through Enterprise Manager?
Thank you.
BillSee sp_configure in SQL Server Books Online.
--
HTH,
Vyas, MVP (SQL Server)
SQL Server Articles and Code Samples @. http://vyaskn.tripod.com/
"BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
Hi,
- I cannot access the Memory Tab to change the memory settings.
- I receive the following error message: Error 8651: Could not perform the
requested operation because the minimum query memory is not available.
Decrease the configured value for the 'min memory per query' server
configuration option.
- The maximum memory was accidentily set to 0 in the SQL Server Properties
Memory Tab.
Is there another way to access and change the maximum memory setting other
than through Enterprise Manager?
Thank you.
Bill|||Check out sp_configure in BooksOnLine.
Andrew J. Kelly SQL MVP
"BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
> Hi,
> - I cannot access the Memory Tab to change the memory settings.
> - I receive the following error message: Error 8651: Could not perform the
> requested operation because the minimum query memory is not available.
> Decrease the configured value for the 'min memory per query' server
> configuration option.
> - The maximum memory was accidentily set to 0 in the SQL Server Properties
> Memory Tab.
> Is there another way to access and change the maximum memory setting other
> than through Enterprise Manager?
> Thank you.
> Bill
>|||Hi Narayana,
Thank you for the suggestion.
I entered the following in the query analyzer, and was then able to access
the memory tab again to make the correction to max memory:
sp_configure 'max server memory', 2147483647
go
reconfigure
go
Thank you!
Bill
"Narayana Vyas Kondreddi" wrote:
> See sp_configure in SQL Server Books Online.
> --
> HTH,
> Vyas, MVP (SQL Server)
> SQL Server Articles and Code Samples @. http://vyaskn.tripod.com/
>
> "BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
> news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
> Hi,
> - I cannot access the Memory Tab to change the memory settings.
> - I receive the following error message: Error 8651: Could not perform the
> requested operation because the minimum query memory is not available.
> Decrease the configured value for the 'min memory per query' server
> configuration option.
> - The maximum memory was accidentily set to 0 in the SQL Server Properties
> Memory Tab.
> Is there another way to access and change the maximum memory setting other
> than through Enterprise Manager?
> Thank you.
> Bill
>
>|||Hi Andrew,
Thank you for the suggestion.
I entered the following in the query analyzer, and was then able to access
the memory tab again to make the correction to max memory:
sp_configure 'max server memory', 2147483647
go
reconfigure
go
Thank you!
Bill
"Andrew J. Kelly" wrote:
> Check out sp_configure in BooksOnLine.
> --
> Andrew J. Kelly SQL MVP
>
> "BillC-CA" <BillC-CA@.discussions.microsoft.com> wrote in message
> news:E29C205C-BC23-4B3B-BCBC-A95FCC806551@.microsoft.com...
>
>
Wednesday, March 7, 2012
Memory problems
Sometimes i have memory problem when my program wants to access an sql mobile database.
SqlXXXdll could not be loaded...please reintsall it...
I used .Net Compact Framework Remote Performance Monitor but it was not so helpful to find the memory
problem.
After that i tried dumpmem utility:
http://support.microsoft.com/default.aspx?scid=kb;en-us;326164
and i really see there is no more memory above the heap:
Process Memory Dump
MainProject.exe
Virtual Memory Dump
======================
Legend
C - Committed
R - Reserved
F - Free
RO - Read Only
RW - Read Write
WC - Write Copy
X - Execute
XR - Execute Read
XRW - Execute Read Write
XWC - Execute Write Copy
G - Guard
NA - No Access
NC - No Cache
2E000000 10000 F NA
2E010000 2000 R NA Image <--Heap start
2E012000 1000 C RW Image
2E013000 43000 R NA Image
2E056000 1000 C RO Image
2E057000 1000 R NA Image
2E058000 1000 C RO Image
2E059000 1000 R NA Image
2E05A000 1000 C RO Image
2E05B000 1000 R NA Image
2E05C000 4000 F NA
2E060000 1000 C RW Private
2E061000 F000 F NA
2E070000 B000 R NA Private
2E07B000 5000 C RW Private
2E080000 2F000 C RW Private
2E0AF000 1000 F NA
2E0B0000 12000 C RW Private
2E0C2000 1D000 R NA Private
2E0DF000 1000 F NA
2E0E0000 2F000 C RW Private
2E10F000 1000 F NA
2E110000 2F000 C RW Private
2E13F000 1000 F NA
2E140000 9000 C RW Private
2E149000 26000 R NA Private
2E16F000 1000 F NA
2E170000 F000 R NA Private
2E17F000 1000 C RW Private
2E180000 F000 R NA Private
2E18F000 1000 C RW Private
2E190000 E000 R NA Private
2E19E000 2000 C RW Private
2E1A0000 E000 R NA Private
2E1AE000 2000 C RW Private
2E1B0000 F000 R NA Private
2E1BF000 1000 C RW Private
2E1C0000 10000 C RW Private
2E1D0000 2F000 C RW Private
2E1FF000 1000 F NA
2E200000 11000 C RW Private
2E211000 F000 F NA
2E220000 17000 C RW Private
2E237000 18000 R NA Private
2E24F000 21000 F NA
2E270000 97000 C RW Private
2E307000 9000 R NA Private
2E310000 97000 C RW Private
2E3A7000 9000 R NA Private
2E3B0000 10000 F NA
2E3C0000 1B000 C RW Private
2E3DB000 5000 R NA Private
2E3E0000 1B000 C RW Private
2E3FB000 5000 R NA Private
2E400000 2F000 C RW Private
2E42F000 1000 F NA
2E430000 E000 R NA Private
2E43E000 2000 C RW Private
2E440000 2F000 C RW Private
2E46F000 21000 F NA
2E490000 2F000 C RW Private
2E4BF000 11000 F NA
2E4D0000 2F000 C RW Private
2E4FF000 1000 F NA
2E500000 2F000 C RW Private
2E52F000 1000 F NA
2E530000 10000 C RW Private
2E540000 2F000 C RW Private
2E56F000 1000 F NA
2E570000 2F000 C RW Private
2E59F000 1000 F NA
2E5A0000 2F000 C RW Private
2E5CF000 1000 F NA
2E5D0000 2F000 C RW Private
2E5FF000 1000 F NA
2E600000 2F000 C RW Private
2E62F000 1000 F NA
2E630000 2F000 C RW Private
2E65F000 1000 F NA
2E660000 2F000 C RW Private
2E68F000 1000 F NA
2E690000 2F000 C RW Private
2E6BF000 1000 F NA
2E6C0000 2F000 C RW Private
2E6EF000 21000 F NA
2E710000 10000 C RW Private
2E720000 10000 C RW Private
2E730000 1F000 R NA Private
2E74F000 31000 F NA
2E780000 2F000 C RW Private
2E7AF000 1000 F NA
2E7B0000 2F000 C RW Private
2E7DF000 1000 F NA
2E7E0000 2F000 C RW Private
2E80F000 11000 F NA
2E820000 1E000 R NA Private
2E83E000 2000 C RW Private
2E840000 2F000 C RW Private
2E86F000 1000 F NA
2E870000 2F000 C RW Private
2E89F000 1000 F NA
2E8A0000 2F000 C RW Private
2E8CF000 1000 F NA
2E8D0000 2F000 C RW Private
2E8FF000 1000 F NA
2E900000 F000 R NA Private
2E90F000 1000 C RW Private
2E910000 97000 C RW Private
2E9A7000 9000 R NA Private
2E9B0000 F000 R NA Private
2E9BF000 1000 C RW Private
2E9C0000 D000 R NA Private
2E9CD000 3000 C RW Private
2E9D0000 1000 C RW Private
2E9D1000 2E000 R NA Private
2E9FF000 11000 F NA
2EA10000 2F000 C RW Private
2EA3F000 1000 F NA
2EA40000 2F000 C RW Private
2EA6F000 1000 F NA
2EA70000 2F000 C RW Private
2EA9F000 1000 F NA
2EAA0000 24000 C RW Private
2EAC4000 B000 R NA Private
2EACF000 1000 F NA <-- the free space between the dlls and the heap
2EAD0000 1000 R NA Image <-- and this is where the first non xip dll starts
What i dont understand is there are a lot of big free blocks in the heap (31000 == 196KB), i called the
GC.Collect and the GC.WaitForPendingFinalizers but its not shrinked physically (maybe just logically).
1) Is there any solution to remove this big free gaps in the heap area?
2) Is there any solution to determine what are these big blocks in the heap 97000 == 600Kb. (Ok i know code review)
I load more 40 png pictures and maybe they consumes a lot of mem.
3) Is there any solution to analyze memory more deep with any tool?
Thanks for help!
what is the purpose for load 40 pictures
do not load them once, because they consumes the memory.
just load them one by one ....
advice:
do not work with GC, let the system do it normally
|||1. ok it doesnt need to load every pics at once but i have a form where i need 20 icon (i use it dynamically)2. i dont work with gc just checked what occurs with the heap in the real memory
I dont know why was this post answer to my question...
Memory problems
Sometimes i have memory problem when my program wants to access an sql mobile database.
SqlXXXdll could not be loaded...please reintsall it...
I used .Net Compact Framework Remote Performance Monitor but it was not so helpful to find the memory
problem.
After that i tried dumpmem utility:
http://support.microsoft.com/default.aspx?scid=kb;en-us;326164
and i really see there is no more memory above the heap:
Process Memory Dump
MainProject.exe
Virtual Memory Dump
======================
Legend
C - Committed
R - Reserved
F - Free
RO - Read Only
RW - Read Write
WC - Write Copy
X - Execute
XR - Execute Read
XRW - Execute Read Write
XWC - Execute Write Copy
G - Guard
NA - No Access
NC - No Cache
2E000000 10000 F NA
2E010000 2000 R NA Image <--Heap start
2E012000 1000 C RW Image
2E013000 43000 R NA Image
2E056000 1000 C RO Image
2E057000 1000 R NA Image
2E058000 1000 C RO Image
2E059000 1000 R NA Image
2E05A000 1000 C RO Image
2E05B000 1000 R NA Image
2E05C000 4000 F NA
2E060000 1000 C RW Private
2E061000 F000 F NA
2E070000 B000 R NA Private
2E07B000 5000 C RW Private
2E080000 2F000 C RW Private
2E0AF000 1000 F NA
2E0B0000 12000 C RW Private
2E0C2000 1D000 R NA Private
2E0DF000 1000 F NA
2E0E0000 2F000 C RW Private
2E10F000 1000 F NA
2E110000 2F000 C RW Private
2E13F000 1000 F NA
2E140000 9000 C RW Private
2E149000 26000 R NA Private
2E16F000 1000 F NA
2E170000 F000 R NA Private
2E17F000 1000 C RW Private
2E180000 F000 R NA Private
2E18F000 1000 C RW Private
2E190000 E000 R NA Private
2E19E000 2000 C RW Private
2E1A0000 E000 R NA Private
2E1AE000 2000 C RW Private
2E1B0000 F000 R NA Private
2E1BF000 1000 C RW Private
2E1C0000 10000 C RW Private
2E1D0000 2F000 C RW Private
2E1FF000 1000 F NA
2E200000 11000 C RW Private
2E211000 F000 F NA
2E220000 17000 C RW Private
2E237000 18000 R NA Private
2E24F000 21000 F NA
2E270000 97000 C RW Private
2E307000 9000 R NA Private
2E310000 97000 C RW Private
2E3A7000 9000 R NA Private
2E3B0000 10000 F NA
2E3C0000 1B000 C RW Private
2E3DB000 5000 R NA Private
2E3E0000 1B000 C RW Private
2E3FB000 5000 R NA Private
2E400000 2F000 C RW Private
2E42F000 1000 F NA
2E430000 E000 R NA Private
2E43E000 2000 C RW Private
2E440000 2F000 C RW Private
2E46F000 21000 F NA
2E490000 2F000 C RW Private
2E4BF000 11000 F NA
2E4D0000 2F000 C RW Private
2E4FF000 1000 F NA
2E500000 2F000 C RW Private
2E52F000 1000 F NA
2E530000 10000 C RW Private
2E540000 2F000 C RW Private
2E56F000 1000 F NA
2E570000 2F000 C RW Private
2E59F000 1000 F NA
2E5A0000 2F000 C RW Private
2E5CF000 1000 F NA
2E5D0000 2F000 C RW Private
2E5FF000 1000 F NA
2E600000 2F000 C RW Private
2E62F000 1000 F NA
2E630000 2F000 C RW Private
2E65F000 1000 F NA
2E660000 2F000 C RW Private
2E68F000 1000 F NA
2E690000 2F000 C RW Private
2E6BF000 1000 F NA
2E6C0000 2F000 C RW Private
2E6EF000 21000 F NA
2E710000 10000 C RW Private
2E720000 10000 C RW Private
2E730000 1F000 R NA Private
2E74F000 31000 F NA
2E780000 2F000 C RW Private
2E7AF000 1000 F NA
2E7B0000 2F000 C RW Private
2E7DF000 1000 F NA
2E7E0000 2F000 C RW Private
2E80F000 11000 F NA
2E820000 1E000 R NA Private
2E83E000 2000 C RW Private
2E840000 2F000 C RW Private
2E86F000 1000 F NA
2E870000 2F000 C RW Private
2E89F000 1000 F NA
2E8A0000 2F000 C RW Private
2E8CF000 1000 F NA
2E8D0000 2F000 C RW Private
2E8FF000 1000 F NA
2E900000 F000 R NA Private
2E90F000 1000 C RW Private
2E910000 97000 C RW Private
2E9A7000 9000 R NA Private
2E9B0000 F000 R NA Private
2E9BF000 1000 C RW Private
2E9C0000 D000 R NA Private
2E9CD000 3000 C RW Private
2E9D0000 1000 C RW Private
2E9D1000 2E000 R NA Private
2E9FF000 11000 F NA
2EA10000 2F000 C RW Private
2EA3F000 1000 F NA
2EA40000 2F000 C RW Private
2EA6F000 1000 F NA
2EA70000 2F000 C RW Private
2EA9F000 1000 F NA
2EAA0000 24000 C RW Private
2EAC4000 B000 R NA Private
2EACF000 1000 F NA <-- the free space between the dlls and the heap
2EAD0000 1000 R NA Image <-- and this is where the first non xip dll starts
What i dont understand is there are a lot of big free blocks in the heap (31000 == 196KB), i called the
GC.Collect and the GC.WaitForPendingFinalizers but its not shrinked physically (maybe just logically).
1) Is there any solution to remove this big free gaps in the heap area?
2) Is there any solution to determine what are these big blocks in the heap 97000 == 600Kb. (Ok i know code review)
I load more 40 png pictures and maybe they consumes a lot of mem.
3) Is there any solution to analyze memory more deep with any tool?
Thanks for help!
what is the purpose for load 40 pictures
do not load them once, because they consumes the memory.
just load them one by one ....
advice:
do not work with GC, let the system do it normally
|||1. ok it doesnt need to load every pics at once but i have a form where i need 20 icon (i use it dynamically)2. i dont work with gc just checked what occurs with the heap in the real memory
I dont know why was this post answer to my question...